nadesiko3 3.3.45 → 3.3.49

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 (329) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +143 -132
  3. package/batch/browsers.template.md +3 -3
  4. package/batch/build_browsers.nako3 +72 -72
  5. package/batch/build_command.nako3 +44 -44
  6. package/batch/build_nako_version.nako3 +42 -42
  7. package/batch/calc_hash.nako3 +29 -29
  8. package/batch/cmd_txt2json.nako3 +74 -74
  9. package/batch/command.txt +270 -338
  10. package/batch/command_nakopad.txt +9 -69
  11. package/batch/download-extlib.nako3 +43 -43
  12. package/batch/gen_command_nakopad.nako3 +57 -57
  13. package/batch/jsplugin2text.nako3 +285 -285
  14. package/batch/pickup_command.nako3 +110 -110
  15. package/batch/pickup_reserved_words.nako3 +11 -11
  16. package/batch/publish_version.nako3 +46 -46
  17. package/batch/show_agents.js +14 -14
  18. package/batch/turtle2js.nako3 +21 -21
  19. package/bin/cnako3 +10 -10
  20. package/core/.editorconfig +6 -0
  21. package/core/.eslintrc.cjs +33 -0
  22. package/core/.github/dependabot.yml +7 -0
  23. package/core/.github/workflows/nodejs.yml +37 -0
  24. package/core/.github/workflows/super-linter.yml +61 -0
  25. package/core/.github/workflows/textlint.yml +199 -0
  26. package/core/LICENSE +21 -0
  27. package/core/README.md +66 -0
  28. package/core/batch/build_nako_version.nako3 +42 -0
  29. package/core/command/snako.mjs +105 -0
  30. package/core/command/snako.mts +116 -0
  31. package/core/index.mjs +21 -0
  32. package/core/index.mts +21 -0
  33. package/core/package.json +47 -0
  34. package/core/sample/hello.nako3 +7 -0
  35. package/core/sample/hoge.mjs +4 -0
  36. package/core/sample/hoge.mts +6 -0
  37. package/core/src/nako3.mjs +858 -0
  38. package/core/src/nako3.mts +967 -0
  39. package/core/src/nako_colors.mjs +78 -0
  40. package/core/src/nako_colors.mts +86 -0
  41. package/core/src/nako_core_version.mjs +8 -0
  42. package/core/src/nako_core_version.mts +19 -0
  43. package/core/src/nako_csv.mjs +185 -0
  44. package/core/src/nako_csv.mts +188 -0
  45. package/core/src/nako_errors.mjs +173 -0
  46. package/core/src/nako_errors.mts +197 -0
  47. package/core/src/nako_from_dncl.mjs +255 -0
  48. package/core/src/nako_from_dncl.mts +250 -0
  49. package/core/src/nako_gen.mjs +1648 -0
  50. package/core/src/nako_gen.mts +1719 -0
  51. package/core/src/nako_gen_async.mjs +1659 -0
  52. package/core/src/nako_gen_async.mts +1732 -0
  53. package/core/src/nako_global.mjs +107 -0
  54. package/core/src/nako_global.mts +138 -0
  55. package/core/src/nako_indent.mjs +445 -0
  56. package/core/src/nako_indent.mts +492 -0
  57. package/core/src/nako_josi_list.mjs +38 -0
  58. package/core/src/nako_josi_list.mts +45 -0
  59. package/core/src/nako_lex_rules.mjs +253 -0
  60. package/core/src/nako_lex_rules.mts +260 -0
  61. package/core/src/nako_lexer.mjs +609 -0
  62. package/core/src/nako_lexer.mts +612 -0
  63. package/core/src/nako_logger.mjs +199 -0
  64. package/core/src/nako_logger.mts +232 -0
  65. package/core/src/nako_parser3.mjs +2439 -0
  66. package/core/src/nako_parser3.mts +2195 -0
  67. package/core/src/nako_parser_base.mjs +370 -0
  68. package/core/src/nako_parser_base.mts +370 -0
  69. package/core/src/nako_parser_const.mjs +37 -0
  70. package/core/src/nako_parser_const.mts +37 -0
  71. package/core/src/nako_prepare.mjs +304 -0
  72. package/core/src/nako_prepare.mts +315 -0
  73. package/core/src/nako_reserved_words.mjs +38 -0
  74. package/core/src/nako_reserved_words.mts +38 -0
  75. package/core/src/nako_source_mapping.mjs +207 -0
  76. package/core/src/nako_source_mapping.mts +262 -0
  77. package/core/src/nako_test.mjs +37 -0
  78. package/core/src/nako_types.mjs +25 -0
  79. package/core/src/nako_types.mts +151 -0
  80. package/core/src/plugin_csv.mjs +49 -0
  81. package/core/src/plugin_csv.mts +50 -0
  82. package/core/src/plugin_math.mjs +328 -0
  83. package/core/src/plugin_math.mts +326 -0
  84. package/core/src/plugin_promise.mjs +91 -0
  85. package/core/src/plugin_promise.mts +91 -0
  86. package/core/src/plugin_system.mjs +2832 -0
  87. package/core/src/plugin_system.mts +2690 -0
  88. package/core/src/plugin_test.mjs +34 -0
  89. package/core/src/plugin_test.mts +34 -0
  90. package/core/test/array_test.mjs +34 -0
  91. package/core/test/basic_test.mjs +344 -0
  92. package/core/test/calc_test.mjs +140 -0
  93. package/core/test/core_module_test.mjs +23 -0
  94. package/core/test/debug_test.mjs +16 -0
  95. package/core/test/dncl_test.mjs +94 -0
  96. package/core/test/error_message_test.mjs +210 -0
  97. package/core/test/error_test.mjs +16 -0
  98. package/core/test/flow_test.mjs +373 -0
  99. package/core/test/func_call.mjs +160 -0
  100. package/core/test/func_test.mjs +149 -0
  101. package/core/test/indent_test.mjs +364 -0
  102. package/core/test/lex_test.mjs +168 -0
  103. package/core/test/literal_test.mjs +73 -0
  104. package/core/test/nako_lexer_test.mjs +35 -0
  105. package/core/test/nako_logger_test.mjs +76 -0
  106. package/core/test/nako_logger_test.mts +78 -0
  107. package/core/test/plugin_csv_test.mjs +38 -0
  108. package/core/test/plugin_promise_test.mjs +18 -0
  109. package/core/test/plugin_system_test.mjs +630 -0
  110. package/core/test/prepare_test.mjs +96 -0
  111. package/core/test/re_test.mjs +22 -0
  112. package/core/test/side_effects_test.mjs +92 -0
  113. package/core/test/variable_scope_test.mjs +149 -0
  114. package/core/tsconfig.json +101 -0
  115. package/demo/ace_editor.html +89 -89
  116. package/demo/ace_editor_tabs.html +161 -161
  117. package/demo/basic.html +71 -71
  118. package/demo/browsers.html +9 -10
  119. package/demo/css/basic.css +3 -3
  120. package/demo/css/common.css +157 -157
  121. package/demo/css/editor.css +8 -8
  122. package/demo/css/flow.css +3 -3
  123. package/demo/css/index.css +3 -3
  124. package/demo/flow.html +98 -98
  125. package/demo/graph.html +53 -53
  126. package/demo/image/nakopad-icon256.png +0 -0
  127. package/demo/index.html +133 -133
  128. package/demo/js/common.js +17 -17
  129. package/demo/js/turtle3d_test.js +44 -44
  130. package/demo/js/turtle_test.js +45 -45
  131. package/demo/nako3/calc.nako3 +4 -4
  132. package/demo/runscript.html +47 -47
  133. package/demo/runscript2.html +33 -33
  134. package/demo/runscript3.html +35 -35
  135. package/demo/runscript4.html +33 -33
  136. package/demo/turtle.html +58 -58
  137. package/demo/turtle2.html +141 -141
  138. package/demo/turtle3.html +279 -279
  139. package/demo/turtle3d.html +58 -58
  140. package/demo/turtle3d2.html +107 -107
  141. package/demo/version.html +24 -24
  142. package/doc/SETUP.md +157 -157
  143. package/doc/about.md +17 -17
  144. package/doc/browsers.md +26 -26
  145. package/doc/docgen.md +21 -21
  146. package/doc/editor.md +44 -44
  147. package/doc/files.md +39 -39
  148. package/doc/plugins.md +234 -234
  149. package/doc/release.md +79 -79
  150. package/doc/textlint.md +43 -43
  151. package/doc/win32.md +57 -57
  152. package/package.json +195 -192
  153. package/release/_hash.txt +28 -28
  154. package/release/_script-tags.txt +14 -14
  155. package/release/command.json +1 -1
  156. package/release/command.json.js +1 -1
  157. package/release/command_cnako3.json +1 -1
  158. package/release/command_list.json +1 -1
  159. package/release/editor.js +1 -1
  160. package/release/nako_gen_async.js +1 -1
  161. package/release/plugin_csv.js +1 -1
  162. package/release/stats.json +1 -1
  163. package/release/version.js +1 -1
  164. package/release/wnako3.js +1 -1
  165. package/release/wnako3webworker.js +1 -1
  166. package/src/browsers.txt +11 -12
  167. package/src/browsers_agents.json +2 -2
  168. package/src/browsers_agents.mjs +1 -1
  169. package/src/cnako3.mjs +17 -10
  170. package/src/cnako3.mts +18 -12
  171. package/src/cnako3mod.mjs +707 -687
  172. package/src/cnako3mod.mts +712 -696
  173. package/src/commander_ja.mjs +164 -164
  174. package/src/commander_ja.mts +161 -161
  175. package/src/enako3.mjs +68 -69
  176. package/src/era.mjs +22 -22
  177. package/src/image_turtle-elephant.mjs +2 -5
  178. package/src/image_turtle-panda.mjs +2 -5
  179. package/src/image_turtle64.mjs +2 -5
  180. package/src/index.mjs +9 -9
  181. package/src/index.mts +10 -11
  182. package/src/nako3editorfix.sfd +106 -106
  183. package/src/nako_version.mjs +8 -8
  184. package/src/nako_version.mts +2 -2
  185. package/src/plugin_browser.mjs +213 -212
  186. package/src/plugin_browser.mts +206 -205
  187. package/src/plugin_browser_ajax.mjs +399 -399
  188. package/src/plugin_browser_audio.mjs +109 -109
  189. package/src/plugin_browser_canvas.mjs +449 -449
  190. package/src/plugin_browser_chart.mjs +294 -294
  191. package/src/plugin_browser_color.mjs +49 -49
  192. package/src/plugin_browser_crypto.mjs +26 -26
  193. package/src/plugin_browser_dialog.mjs +53 -53
  194. package/src/plugin_browser_dom_basic.mjs +336 -336
  195. package/src/plugin_browser_dom_event.mjs +193 -193
  196. package/src/plugin_browser_dom_parts.mjs +396 -396
  197. package/src/plugin_browser_geolocation.mjs +51 -51
  198. package/src/plugin_browser_hotkey.mjs +25 -25
  199. package/src/plugin_browser_html.mjs +59 -59
  200. package/src/plugin_browser_in_worker.mjs +45 -45
  201. package/src/plugin_browser_location.mjs +21 -21
  202. package/src/plugin_browser_speech.mjs +111 -111
  203. package/src/plugin_browser_storage.mjs +121 -121
  204. package/src/plugin_browser_system.mjs +31 -31
  205. package/src/plugin_browser_websocket.mjs +73 -73
  206. package/src/plugin_caniuse.mjs +29 -29
  207. package/src/plugin_datetime.mjs +394 -394
  208. package/src/plugin_httpserver.mjs +277 -0
  209. package/src/plugin_httpserver.mts +286 -0
  210. package/src/plugin_kansuji.mjs +224 -224
  211. package/src/plugin_keigo.mjs +55 -55
  212. package/src/plugin_markup.mjs +32 -32
  213. package/src/plugin_node.mjs +1047 -1047
  214. package/src/plugin_node.mts +980 -980
  215. package/src/plugin_turtle.mjs +647 -647
  216. package/src/plugin_webworker.mjs +334 -334
  217. package/src/plugin_weykturtle3d.mjs +1214 -1214
  218. package/src/plugin_worker.mjs +95 -95
  219. package/src/repl.nako3 +63 -63
  220. package/src/wnako3.mjs +12 -12
  221. package/src/wnako3.mts +11 -11
  222. package/src/wnako3_editor.css +215 -215
  223. package/src/wnako3_editor.mjs +1542 -1542
  224. package/src/wnako3_editor.mts +1657 -1656
  225. package/src/wnako3mod.mjs +213 -213
  226. package/src/wnako3mod.mts +214 -214
  227. package/src/wnako3webworker.mjs +69 -68
  228. package/test/ace_editor/karma.config.js +94 -94
  229. package/test/ace_editor/test/.babelrc.json +3 -3
  230. package/test/ace_editor/test/ace_editor_test.js +178 -178
  231. package/test/ace_editor/test/html/custom_context.html +139 -139
  232. package/test/async/async_basic_test.mjs +122 -122
  233. package/test/browser/karma.config.js +221 -221
  234. package/test/browser/test/.babelrc.json +3 -3
  235. package/test/browser/test/compare_util.js +50 -50
  236. package/test/browser/test/html/div_basic.html +2 -2
  237. package/test/browser/test/html/event_dom_form.html +4 -4
  238. package/test/browser/test/html/event_dom_scrolldiv.html +5 -5
  239. package/test/browser/test/import_plugin_checker.js +24 -24
  240. package/test/browser/test/plugin_browser_test.js +51 -51
  241. package/test/browser/test/plugin_browser_test_ajax.js +123 -123
  242. package/test/browser/test/plugin_browser_test_color.js +18 -18
  243. package/test/browser/test/plugin_browser_test_dialog.js +72 -72
  244. package/test/browser/test/plugin_browser_test_dom_event.js +598 -598
  245. package/test/browser/test/plugin_browser_test_dom_parts.js +125 -125
  246. package/test/browser/test/plugin_browser_test_system.js +9 -9
  247. package/test/browser/test/plugin_turtle_test.js +817 -817
  248. package/test/browser/test/plugin_webworker_test.js +86 -86
  249. package/test/browser/test/require_test.js +68 -68
  250. package/test/bundled/karma.config.base.js +117 -117
  251. package/test/bundled/karma.config.js +86 -86
  252. package/test/bundled/test/.babelrc.json +3 -3
  253. package/test/bundled/test/bundled_test.js +69 -69
  254. package/test/bundled/test/html/custom_context.html +65 -65
  255. package/test/bundled/test/html/custom_debug.html +66 -66
  256. package/test/bundled/test4b.cmd +52 -52
  257. package/test/bundled/test_base/.babelrc.json +3 -3
  258. package/test/bundled/test_base/_checktool_test.js +25 -25
  259. package/test/bundled/test_base/basic_ajax_test.js +56 -56
  260. package/test/bundled/test_base/basic_async_test.js +18 -18
  261. package/test/bundled/test_base/basic_test.js +153 -153
  262. package/test/bundled/test_base/calc_test.js +132 -132
  263. package/test/bundled/test_base/css/browsers_box.css +114 -114
  264. package/test/bundled/test_base/html/custom_context.html +69 -69
  265. package/test/bundled/test_base/html/custom_debug.html +71 -71
  266. package/test/bundled/test_base/js/browsers_box.js +72 -72
  267. package/test/bundled/test_base/plugin_csv_test.js +37 -37
  268. package/test/bundled/test_base/plugin_datetime_test.js +115 -115
  269. package/test/bundled/test_base/plugin_kansuji_test.js +49 -49
  270. package/test/bundled/test_base/plugin_system_test.js +410 -410
  271. package/test/bundled/test_base/plugin_webworker_test.js +53 -53
  272. package/test/bundled/test_base/test_utils.js +191 -191
  273. package/test/common/plugin_browser_test.mjs +22 -24
  274. package/test/common/plugin_browser_ut_audio_test.mjs +108 -108
  275. package/test/common/plugin_browser_ut_color_test.mjs +21 -21
  276. package/test/common/plugin_browser_ut_dialog_test.mjs +100 -100
  277. package/test/common/plugin_browser_ut_html_test.mjs +13 -13
  278. package/test/common/plugin_browser_ut_system_test.mjs +10 -10
  279. package/test/common/plugin_markup_test.mjs +23 -23
  280. package/test/jsconfig.json +19 -19
  281. package/test/karma.config.js +91 -91
  282. package/test/node/async_test.mjs +96 -82
  283. package/test/node/commander_ja_test.mjs +89 -89
  284. package/test/node/error_message_test.mjs +243 -253
  285. package/test/node/kai_test.nako3 +6 -6
  286. package/test/node/node_test.mjs +60 -60
  287. package/test/node/plugin_broken.js.txt +3 -3
  288. package/test/node/plugin_browser_ut_ajax_test.mjs.todo +357 -357
  289. package/test/node/plugin_browser_ut_location_test.mjs +42 -42
  290. package/test/node/plugin_markup_test.mjs +47 -46
  291. package/test/node/plugin_math_test.mjs +45 -44
  292. package/test/node/plugin_node_test.mjs +98 -97
  293. package/test/node/plugin_test.mjs +44 -43
  294. package/test/node/relative_import_test_1.nako3 +1 -1
  295. package/test/node/relative_import_test_2.nako3 +2 -2
  296. package/test/node/require_nako3_test.mjs +67 -66
  297. package/test/node/requiretest.nako3 +4 -4
  298. package/test/node/requiretest_indirect.nako3 +1 -1
  299. package/test/node/requiretest_name.nako3 +5 -5
  300. package/test/node/runtime_error.nako3 +2 -2
  301. package/test/node/scope1.nako3 +10 -10
  302. package/test/node/scope2.nako3 +12 -12
  303. package/test/node/side_effects_test.mjs +39 -119
  304. package/test/node/sjis.txt +5 -5
  305. package/test/node/syntax_error.nako3 +1 -1
  306. package/test/node/wnako3_editor_test.mjs +384 -384
  307. package/tools/README.md +12 -7
  308. package/tools/check_new_version.nako3 +25 -25
  309. package/tools/nako3edit/html/daisyui/LICENSE +22 -22
  310. package/tools/nako3edit/html/daisyui/version_2.14.1 +1 -1
  311. package/tools/nako3edit/html/edit.html +170 -170
  312. package/tools/nako3edit/html/edit_plugin.js +6 -6
  313. package/tools/nako3edit/html/files.html +125 -125
  314. package/tools/nako3edit/html/nako3edit.css +65 -65
  315. package/tools/nako3edit/index.mjs +248 -244
  316. package/tools/nako3server/index.html +10 -0
  317. package/tools/nako3server/index.mjs +116 -116
  318. package/tools/nako3server/index.nako3 +34 -0
  319. package/release/nako_gen_async.js.LICENSE.txt +0 -35
  320. package/release/plugin_caniuse.js.LICENSE.txt +0 -11
  321. package/release/plugin_csv.js.LICENSE.txt +0 -15
  322. package/release/plugin_datetime.js.LICENSE.txt +0 -15
  323. package/release/plugin_kansuji.js.LICENSE.txt +0 -3
  324. package/release/plugin_markup.js.LICENSE.txt +0 -11
  325. package/release/plugin_turtle.js.LICENSE.txt +0 -15
  326. package/release/plugin_webworker.js.LICENSE.txt +0 -3
  327. package/release/plugin_weykturtle3d.js.LICENSE.txt +0 -3
  328. package/release/wnako3webworker.js.LICENSE.txt +0 -131
  329. package/tools/nako3edit/a.sqlite3 +0 -0
@@ -1,66 +1,67 @@
1
- /* eslint-disable no-undef */
2
- import assert from 'assert'
3
- import path from 'path'
4
-
5
- import { CNako3 } from '../../src/cnako3mod.mjs'
6
- import { NakoImportError } from 'nadesiko3core/src/nako_errors.mjs'
7
-
8
- // __dirname のために
9
- import url from 'url'
10
- // @ts-ignore
11
- const __filename = url.fileURLToPath(import.meta.url)
12
- const __dirname = path.dirname(__filename)
13
-
14
- describe('require_nako3_test', () => {
15
- const nako = new CNako3()
16
- // nako.logger.addListener('trace', ({ browserConsole }) => { console.log(...browserConsole) })
17
- nako.silent = true
18
- const cmp = async (/** @type {string} */ code, /** @type {string} */ res) => {
19
- nako.logger.debug('code=' + code)
20
- const ret = await nako.run(code, 'main.nako3')
21
- assert.strictEqual(ret.log, res)
22
- }
23
- it('「ファイルを取り込む」', () => {
24
- cmp('!「' + __dirname + '/requiretest.nako3」を取り込む。\n痕跡を表示。3と5を痕跡演算して、表示。', '5\n8')
25
- })
26
- it('CNakoの相対インポート', () => {
27
- cmp('!「' + __dirname + '/relative_import_test_2.nako3」を取り込む。', '1\n2')
28
- })
29
- it('「回」が1回だけ分割されることを確認する', () => {
30
- cmp('!「' + __dirname + '/kai_test.nako3」を取り込む', '')
31
- })
32
- it('.jsと.nako3を同時に読み込む[1/2] .jsが先の場合', async () => {
33
- const nako = new CNako3()
34
- const code =
35
- '!「plugin_csv.mjs」を取り込む。\n' +
36
- `!「${__dirname}/requiretest.nako3」を取り込む。\n`
37
- await nako.runAsync(code, 'main.nako3') // エラーが飛ばないことを確認
38
- })
39
- it('.jsと.nako3を同時に読み込む[2/2] .nako3が先の場合', async () => {
40
- const nako = new CNako3()
41
- const code =
42
- `!「${__dirname}/requiretest.nako3」を取り込む。\n` +
43
- '!「plugin_csv.mjs」を取り込む。\n'
44
- await nako.runAsync(code, 'main.nako3') // エラーが飛ばないことを確認
45
- })
46
- it('.jsファイルの投げたエラーを表示', async () => {
47
- const nako = new CNako3()
48
- const code = `!「${__dirname}/plugin_broken.js.txt」を取り込む`
49
- // await nako.loadDependencies(code, 'main.nako3', '')
50
- assert.rejects(
51
- async () => {
52
- await nako.run(code, 'main.nako3')
53
- },
54
- (err) => {
55
- assert(err instanceof NakoImportError)
56
- assert(err.message.includes('テスト'))
57
- assert.strictEqual(err.line, 0) // 1行目
58
- assert.strictEqual(err.file, 'main.nako3')
59
- }
60
- )
61
- })
62
- it('『プラグイン名』のテスト。(#956)', () => {
63
- const fname = __dirname + path.sep + 'requiretest_name.nako3'
64
- cmp('!「' + fname + '」を取り込む。リクエスト名前取得して表示。', fname)
65
- })
66
- })
1
+ /* eslint-disable no-undef */
2
+ import assert from 'assert'
3
+ import path from 'path'
4
+
5
+ import { CNako3 } from '../../src/cnako3mod.mjs'
6
+ import { NakoImportError } from '../../core/src/nako_errors.mjs'
7
+
8
+ // __dirname のために
9
+ import url from 'url'
10
+ // @ts-ignore
11
+ const __filename = url.fileURLToPath(import.meta.url)
12
+ const __dirname = path.dirname(__filename)
13
+
14
+ describe('require_nako3_test', () => {
15
+ const nako = new CNako3()
16
+ // nako.logger.addListener('trace', ({ browserConsole }) => { console.log(...browserConsole) })
17
+ nako.silent = true
18
+ const cmp = async (/** @type {string} */ code, /** @type {string} */ res) => {
19
+ nako.logger.debug('code=' + code)
20
+ const ret = await nako.run(code, 'main.nako3')
21
+ assert.strictEqual(ret.log, res)
22
+ }
23
+ it('「ファイルを取り込む」', () => {
24
+ cmp('!「' + __dirname + '/requiretest.nako3」を取り込む。\n痕跡を表示。3と5を痕跡演算して、表示。', '5\n8')
25
+ })
26
+ it('CNakoの相対インポート', () => {
27
+ cmp('!「' + __dirname + '/relative_import_test_2.nako3」を取り込む。', '1\n2')
28
+ })
29
+ it('「回」が1回だけ分割されることを確認する', () => {
30
+ cmp('!「' + __dirname + '/kai_test.nako3」を取り込む', '')
31
+ })
32
+ it('.jsと.nako3を同時に読み込む[1/2] .jsが先の場合', async () => {
33
+ const nako = new CNako3()
34
+ const code =
35
+ '!「plugin_csv.mjs」を取り込む。\n' +
36
+ `!「${__dirname}/requiretest.nako3」を取り込む。\n`
37
+ await nako.runAsync(code, 'main.nako3') // エラーが飛ばないことを確認
38
+ })
39
+ it('.jsと.nako3を同時に読み込む[2/2] .nako3が先の場合', async () => {
40
+ const nako = new CNako3()
41
+ const code =
42
+ `!「${__dirname}/requiretest.nako3」を取り込む。\n` +
43
+ '!「plugin_csv.mjs」を取り込む。\n'
44
+ await nako.runAsync(code, 'main.nako3') // エラーが飛ばないことを確認
45
+ })
46
+ it('.jsファイルの投げたエラーを表示', async () => {
47
+ const nako = new CNako3()
48
+ const code = `!「${__dirname}/plugin_broken.js.txt」を取り込む`
49
+ // await nako.loadDependencies(code, 'main.nako3', '')
50
+ assert.rejects(
51
+ async () => {
52
+ await nako.run(code, 'main.nako3')
53
+ },
54
+ (err) => {
55
+ assert(err instanceof NakoImportError)
56
+ assert(err.message.includes('テスト'))
57
+ assert.strictEqual(err.line, 0) // 1行目
58
+ assert.strictEqual(err.file, 'main.nako3')
59
+ }
60
+ )
61
+ })
62
+ it('『プラグイン名』のテスト。(#956)', () => {
63
+ const fname = __dirname + path.sep + 'requiretest_name.nako3'
64
+ cmp('!「' + fname + '」を取り込む。リクエスト名前取得して表示。', fname)
65
+ })
66
+ })
67
+
@@ -1,4 +1,4 @@
1
- 痕跡とは変数は5
2
- ●(AとBを)痕跡演算とは
3
-   A+Bで戻る
4
- ここまで
1
+ 痕跡とは変数は5
2
+ ●(AとBを)痕跡演算とは
3
+   A+Bで戻る
4
+ ここまで
@@ -1 +1 @@
1
- !「./requiretest.nako3」を取り込む
1
+ !「./requiretest.nako3」を取り込む
@@ -1,5 +1,5 @@
1
- PLUG=プラグイン名
2
-
3
- ●リクエスト名前取得とは
4
-   PLUGを戻す。
5
- ここまで。
1
+ PLUG=プラグイン名
2
+
3
+ ●リクエスト名前取得とは
4
+   PLUGを戻す。
5
+ ここまで。
@@ -1,2 +1,2 @@
1
-
2
- 1のエラー発生
1
+
2
+ 1のエラー発生
@@ -1,10 +1,10 @@
1
- 朝食値段=1000
2
-
3
- ●朝食取得
4
-   朝食値段を戻す。
5
- ここまで
6
-
7
- P=プラグイン名
8
- ●スコープ取得とは
9
-   Pを戻す
10
- ここまで。
1
+ 朝食値段=1000
2
+
3
+ ●朝食取得
4
+   朝食値段を戻す。
5
+ ここまで
6
+
7
+ P=プラグイン名
8
+ ●スコープ取得とは
9
+   Pを戻す
10
+ ここまで。
@@ -1,12 +1,12 @@
1
- 朝食値段=2000
2
-
3
- ●朝食取得
4
-   朝食値段を戻す。
5
- ここまで
6
-
7
-
8
- P=プラグイン名
9
- ●スコープ取得とは
10
-   Pを戻す
11
- ここまで。
12
-
1
+ 朝食値段=2000
2
+
3
+ ●朝食取得
4
+   朝食値段を戻す。
5
+ ここまで
6
+
7
+
8
+ P=プラグイン名
9
+ ●スコープ取得とは
10
+   Pを戻す
11
+ ここまで。
12
+
@@ -1,119 +1,39 @@
1
- /* eslint-disable no-undef */
2
- import assert from 'assert'
3
- import path from 'path'
4
-
5
- import { NakoCompiler } from 'nadesiko3core/src/nako3.mjs'
6
- import { CNako3 } from '../../src/cnako3mod.mjs'
7
- import { NakoSyntaxError } from 'nadesiko3core/src/nako_errors.mjs'
8
-
9
- // __dirname のために
10
- import url from 'url'
11
- // @ts-ignore
12
- const __filename = url.fileURLToPath(import.meta.url)
13
- const __dirname = path.dirname(__filename)
14
-
15
- describe('side_effects_test', () => {
16
- it('変数の定義 - 1', () => {
17
- const nako = new NakoCompiler()
18
- nako.run('A=10', 'main.nako3')
19
- assert.strictEqual(nako.run('Aを表示', 'main.nako3').log, 'undefined')
20
- })
21
- it('関数の定義 - 変数として参照', () => {
22
- const nako = new NakoCompiler()
23
- nako.run('●Aとは\nここまで', 'main.nako3')
24
- assert.strictEqual(nako.run('Aを表示', 'main.nako3').log, 'undefined')
25
- })
26
- it('関数の定義 - 関数として参照', () => {
27
- const nako = new NakoCompiler()
28
- nako.run('●Aとは\nここまで', 'main.nako3')
29
- assert.throws(() => nako.run('A', 'main.nako3'), NakoSyntaxError)
30
- })
31
- it('関数の定義 - 関数として定義した場合', () => {
32
- const nako = new NakoCompiler()
33
- nako.run('●Aとは\nここまで', 'main.nako3')
34
- assert.strictEqual(nako.run('●(xの)Aとは\nここまで', 'main.nako3').log, '')
35
- })
36
- it('プラグイン変数の上書き', () => {
37
- const nako = new NakoCompiler()
38
- nako.addPluginObject('SideEffectTestPlugin', {
39
- 'プラグイン変数': { type: 'var', value: 100 }
40
- })
41
- nako.run('プラグイン変数=20', 'main.nako3')
42
- assert.strictEqual(nako.run('プラグイン変数を表示', 'main.nako3').log, '100')
43
- })
44
- it('プラグイン関数の上書き', () => {
45
- const nako = new NakoCompiler()
46
- nako.run('●足すとは\nここまで', 'main.nako3')
47
- assert.strictEqual(nako.run('1と2を足して表示', 'main.nako3').log, '3')
48
- })
49
- it('addFuncで設定した関数の上書き', () => {
50
- const nako = new NakoCompiler()
51
- nako.addFunc('hoge', [], () => 1, false)
52
- assert.strictEqual(nako.run('●hogeとは\n2を戻す\nここまで\nhogeを表示', 'main.nako3').log, '2')
53
- assert.strictEqual(nako.run('hogeを表示', 'main.nako3').log, '1')
54
- })
55
- it('プラグインの取り込み', async () => {
56
- const nako = new CNako3({ nostd: false })
57
- nako.silent = true
58
-
59
- // 取り込み命令ありで実行
60
- const code1 = '!「plugin_csv.mjs」を取り込む。\n「1,2」のCSV取得して表示'
61
- assert.strictEqual((await nako.runAsync(code1, 'main.nako3')).log, '1,2')
62
-
63
- // [TODO] 取り込み命令なしで実行
64
- // const code2 = '!「1,2」のCSV取得して表示'
65
- // assert.throws(() => nako.run(code2, 'main.nako3'), NakoSyntaxError)
66
- })
67
- it('ファイルの取り込み', async () => {
68
- const cnako = new CNako3({ nostd: false })
69
- cnako.silent = true
70
-
71
- // 取り込み命令ありで実行
72
- const fname = path.join(__dirname, 'requiretest.nako3')
73
- const code1 = `!「${fname}」を取り込む。\n痕跡を表示。3と5を痕跡演算して、表示。`
74
- const res = await cnako.runAsync(code1, 'main.nako3')
75
- assert.strictEqual(res.log, '5\n8')
76
-
77
- // 取り込み命令なしで実行
78
- /* [TODO] なぜか以下うまくエラーを捕捉できない
79
- const code2 = '痕跡を表示。3と5を痕跡演算して、表示。'
80
- assert.throws(
81
- async () => { await nako.run(code2, 'main.nako3') },
82
- NakoSyntaxError)
83
- */
84
- })
85
- it('「初期化」と「!クリア」を呼ぶ', () => {
86
- /** @type {any[]} */
87
- const log = []
88
- const nako = new NakoCompiler()
89
-
90
- let count = 0
91
- nako.addPluginObject('ClearTest', {
92
- '初期化': {
93
- type: 'func',
94
- josi: [],
95
- pure: true,
96
- fn: (/** @type {{ x: number; }} */ sys) => {
97
- sys.x = count++
98
- log.push(['初期化', sys.x])
99
- }
100
- },
101
- '!クリア': {
102
- type: 'func',
103
- josi: [],
104
- pure: true,
105
- fn: (/** @type {{ x: any; }} */ sys) => {
106
- log.push(['!クリア', sys.x])
107
- }
108
- }
109
- })
110
-
111
- const process1 = nako.run('a=1', '')
112
- const process2 = nako.run('a=1', '')
113
-
114
- process1.destroy()
115
- process2.destroy()
116
-
117
- assert.deepStrictEqual(log, [['初期化', 0], ['初期化', 1], ['!クリア', 0], ['!クリア', 1]])
118
- })
119
- })
1
+ /* eslint-disable no-undef */
2
+ import assert from 'assert'
3
+ import path from 'path'
4
+ import { CNako3 } from '../../src/cnako3mod.mjs'
5
+
6
+ // __dirname のために
7
+ import url from 'url'
8
+ // @ts-ignore
9
+ const __filename = url.fileURLToPath(import.meta.url)
10
+ const __dirname = path.dirname(__filename)
11
+
12
+ describe('cnako::side_effects_test', () => {
13
+ it('プラグインの取り込み', async () => {
14
+ const nako = new CNako3({ nostd: false })
15
+ // 取り込み命令ありで実行
16
+ const code1 = '!「plugin_csv.mjs」を取り込む。\n「1,2」のCSV取得して表示'
17
+ assert.strictEqual((await nako.runAsync(code1, 'main.nako3')).log, '1,2')
18
+
19
+ // [TODO] 取り込み命令なしで実行
20
+ // const code2 = '!「1,2」のCSV取得して表示'
21
+ // assert.throws(() => nako.run(code2, 'main.nako3'), NakoSyntaxError)
22
+ })
23
+ it('ファイルの取り込み', async () => {
24
+ const cnako = new CNako3({ nostd: false })
25
+ // 取り込み命令ありで実行
26
+ const fname = path.join(__dirname, 'requiretest.nako3')
27
+ const code1 = `!「${fname}」を取り込む。\n痕跡を表示。3と5を痕跡演算して、表示。`
28
+ const res = await cnako.runAsync(code1, 'main.nako3')
29
+ assert.strictEqual(res.log, '5\n8')
30
+
31
+ // 取り込み命令なしで実行
32
+ /* [TODO] なぜか以下うまくエラーを捕捉できない
33
+ const code2 = '痕跡を表示。3と5を痕跡演算して、表示。'
34
+ assert.throws(
35
+ async () => { nako.run(code2, 'main.nako3') },
36
+ NakoSyntaxError)
37
+ */
38
+ })
39
+ })
@@ -1,5 +1,5 @@
1
- ���t,�T�v,�l�i
2
- 2019/01/12,"�����N���ی����@����","16490"
3
- 2019/02/10,"�z�[���Z���^�[","5150"
4
-
5
-
1
+ ���t,�T�v,�l�i
2
+ 2019/01/12,"�����N���ی����@����","16490"
3
+ 2019/02/10,"�z�[���Z���^�[","5150"
4
+
5
+
@@ -1,2 +1,2 @@
1
-
1
+
2
2
  a