nadesiko3 3.3.49 → 3.3.52

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 (343) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +143 -143
  3. package/batch/.DS_Store +0 -0
  4. package/batch/browsers.template.md +3 -3
  5. package/batch/build_browsers.nako3 +72 -72
  6. package/batch/build_command.nako3 +44 -44
  7. package/batch/build_nako_version.nako3 +42 -42
  8. package/batch/calc_hash.nako3 +29 -29
  9. package/batch/cmd_txt2json.nako3 +74 -74
  10. package/batch/command.txt +162 -83
  11. package/batch/command_nakopad.txt +69 -0
  12. package/batch/download-extlib.nako3 +43 -43
  13. package/batch/gen_command_nakopad.nako3 +57 -57
  14. package/batch/jsplugin2text.nako3 +285 -285
  15. package/batch/pickup_command.nako3 +113 -110
  16. package/batch/pickup_reserved_words.nako3 +11 -11
  17. package/batch/publish_version.nako3 +46 -46
  18. package/batch/show_agents.js +14 -14
  19. package/batch/turtle2js.nako3 +21 -21
  20. package/bin/cnako3 +10 -10
  21. package/core/LICENSE +21 -21
  22. package/core/README.md +66 -66
  23. package/core/batch/build_nako_version.nako3 +42 -42
  24. package/core/command/snako.mjs +105 -105
  25. package/core/command/snako.mts +116 -116
  26. package/core/index.mjs +21 -21
  27. package/core/package.json +47 -47
  28. package/core/sample/hello.nako3 +7 -7
  29. package/core/sample/hoge.mjs +4 -4
  30. package/core/sample/hoge.mts +6 -6
  31. package/core/src/nako3.mjs +870 -858
  32. package/core/src/nako3.mts +983 -967
  33. package/core/src/nako_colors.mjs +78 -78
  34. package/core/src/nako_colors.mts +86 -86
  35. package/core/src/nako_core_version.mjs +8 -8
  36. package/core/src/nako_core_version.mts +19 -19
  37. package/core/src/nako_csv.mjs +185 -185
  38. package/core/src/nako_csv.mts +188 -188
  39. package/core/src/nako_errors.mjs +173 -173
  40. package/core/src/nako_errors.mts +197 -197
  41. package/core/src/nako_from_dncl.mjs +255 -255
  42. package/core/src/nako_from_dncl.mts +250 -250
  43. package/core/src/nako_gen.mjs +1647 -1648
  44. package/core/src/nako_gen.mts +1718 -1719
  45. package/core/src/nako_gen_async.mjs +1659 -1659
  46. package/core/src/nako_gen_async.mts +1732 -1732
  47. package/core/src/nako_global.mjs +109 -107
  48. package/core/src/nako_global.mts +141 -138
  49. package/core/src/nako_indent.mjs +445 -445
  50. package/core/src/nako_indent.mts +492 -492
  51. package/core/src/nako_josi_list.mjs +38 -38
  52. package/core/src/nako_josi_list.mts +45 -45
  53. package/core/src/nako_lex_rules.mjs +253 -253
  54. package/core/src/nako_lex_rules.mts +260 -260
  55. package/core/src/nako_lexer.mjs +609 -609
  56. package/core/src/nako_lexer.mts +612 -612
  57. package/core/src/nako_logger.mjs +199 -199
  58. package/core/src/nako_logger.mts +232 -232
  59. package/core/src/nako_parser3.mjs +2441 -2439
  60. package/core/src/nako_parser3.mts +2197 -2195
  61. package/core/src/nako_parser_base.mjs +371 -370
  62. package/core/src/nako_parser_base.mts +372 -370
  63. package/core/src/nako_parser_const.mjs +37 -37
  64. package/core/src/nako_parser_const.mts +37 -37
  65. package/core/src/nako_prepare.mjs +304 -304
  66. package/core/src/nako_prepare.mts +315 -315
  67. package/core/src/nako_reserved_words.mjs +38 -38
  68. package/core/src/nako_reserved_words.mts +38 -38
  69. package/core/src/nako_source_mapping.mjs +207 -207
  70. package/core/src/nako_source_mapping.mts +262 -262
  71. package/core/src/nako_test.mjs +37 -37
  72. package/core/src/nako_types.mjs +13 -25
  73. package/core/src/nako_types.mts +144 -151
  74. package/core/src/plugin_csv.mjs +49 -49
  75. package/core/src/plugin_csv.mts +50 -50
  76. package/core/src/plugin_math.mjs +328 -328
  77. package/core/src/plugin_math.mts +326 -326
  78. package/core/src/plugin_promise.mjs +91 -91
  79. package/core/src/plugin_promise.mts +91 -91
  80. package/core/src/plugin_system.mjs +2832 -2832
  81. package/core/src/plugin_system.mts +2690 -2690
  82. package/core/src/plugin_test.mjs +34 -34
  83. package/core/src/plugin_test.mts +34 -34
  84. package/demo/.DS_Store +0 -0
  85. package/demo/ace_editor.html +89 -89
  86. package/demo/ace_editor_tabs.html +161 -161
  87. package/demo/basic.html +71 -71
  88. package/demo/browsers.html +10 -9
  89. package/demo/css/basic.css +3 -3
  90. package/demo/css/common.css +157 -157
  91. package/demo/css/editor.css +8 -8
  92. package/demo/css/flow.css +3 -3
  93. package/demo/css/index.css +3 -3
  94. package/demo/extlib/.DS_Store +0 -0
  95. package/demo/flow.html +98 -98
  96. package/demo/graph.html +53 -53
  97. package/demo/image/nakopad-icon256.png +0 -0
  98. package/demo/index.html +133 -133
  99. package/demo/js/common.js +17 -17
  100. package/demo/js/turtle3d_test.js +44 -44
  101. package/demo/js/turtle_test.js +45 -45
  102. package/demo/nako3/calc.nako3 +4 -4
  103. package/demo/runscript.html +47 -47
  104. package/demo/runscript2.html +33 -33
  105. package/demo/runscript3.html +35 -35
  106. package/demo/runscript4.html +33 -33
  107. package/demo/turtle.html +58 -58
  108. package/demo/turtle2.html +141 -141
  109. package/demo/turtle3.html +279 -279
  110. package/demo/turtle3d.html +58 -58
  111. package/demo/turtle3d2.html +107 -107
  112. package/demo/version.html +24 -24
  113. package/doc/SETUP.md +157 -157
  114. package/doc/about.md +17 -17
  115. package/doc/browsers.md +26 -26
  116. package/doc/docgen.md +21 -21
  117. package/doc/editor.md +44 -44
  118. package/doc/files.md +39 -39
  119. package/doc/plugins.md +234 -234
  120. package/doc/release.md +79 -79
  121. package/doc/textlint.md +43 -43
  122. package/doc/win32.md +57 -57
  123. package/package.json +195 -195
  124. package/release/_hash.txt +28 -28
  125. package/release/_script-tags.txt +14 -14
  126. package/release/command.json +1 -1
  127. package/release/command.json.js +1 -1
  128. package/release/command_cnako3.json +1 -1
  129. package/release/command_list.json +1 -1
  130. package/release/editor.js +1 -1
  131. package/release/nako_gen_async.js +2 -1
  132. package/release/nako_gen_async.js.LICENSE.txt +35 -0
  133. package/release/plugin_caniuse.js.LICENSE.txt +11 -0
  134. package/release/plugin_csv.js +1 -1
  135. package/release/plugin_csv.js.LICENSE.txt +15 -0
  136. package/release/plugin_datetime.js.LICENSE.txt +15 -0
  137. package/release/plugin_kansuji.js.LICENSE.txt +3 -0
  138. package/release/plugin_markup.js.LICENSE.txt +11 -0
  139. package/release/plugin_turtle.js.LICENSE.txt +15 -0
  140. package/release/plugin_webworker.js.LICENSE.txt +3 -0
  141. package/release/plugin_weykturtle3d.js.LICENSE.txt +3 -0
  142. package/release/stats.json +1 -1
  143. package/release/version.js +1 -1
  144. package/release/wnako3.js +1 -1
  145. package/release/wnako3.js.LICENSE.txt +203 -1
  146. package/release/wnako3webworker.js +2 -1
  147. package/release/wnako3webworker.js.LICENSE.txt +131 -0
  148. package/src/.DS_Store +0 -0
  149. package/src/browsers.txt +12 -11
  150. package/src/browsers_agents.json +2 -2
  151. package/src/browsers_agents.mjs +1 -1
  152. package/src/cnako3.mjs +17 -17
  153. package/src/cnako3.mts +18 -18
  154. package/src/cnako3mod.mjs +682 -707
  155. package/src/cnako3mod.mts +688 -712
  156. package/src/commander_ja.mjs +164 -164
  157. package/src/commander_ja.mts +161 -161
  158. package/src/enako3.mjs +68 -68
  159. package/src/era.mjs +22 -22
  160. package/src/image_turtle-elephant.mjs +2 -2
  161. package/src/image_turtle-panda.mjs +2 -2
  162. package/src/image_turtle64.mjs +2 -2
  163. package/src/index.mjs +9 -9
  164. package/src/index.mts +10 -10
  165. package/src/nako3editorfix.sfd +106 -106
  166. package/src/nako_version.mjs +8 -8
  167. package/src/nako_version.mts +2 -2
  168. package/src/plugin_browser.mjs +213 -213
  169. package/src/plugin_browser.mts +206 -206
  170. package/src/plugin_browser_ajax.mjs +399 -399
  171. package/src/plugin_browser_audio.mjs +109 -109
  172. package/src/plugin_browser_canvas.mjs +449 -449
  173. package/src/plugin_browser_chart.mjs +294 -294
  174. package/src/plugin_browser_color.mjs +49 -49
  175. package/src/plugin_browser_crypto.mjs +26 -26
  176. package/src/plugin_browser_dialog.mjs +53 -53
  177. package/src/plugin_browser_dom_basic.mjs +336 -336
  178. package/src/plugin_browser_dom_event.mjs +193 -193
  179. package/src/plugin_browser_dom_parts.mjs +396 -396
  180. package/src/plugin_browser_geolocation.mjs +51 -51
  181. package/src/plugin_browser_hotkey.mjs +25 -25
  182. package/src/plugin_browser_html.mjs +59 -59
  183. package/src/plugin_browser_in_worker.mjs +45 -45
  184. package/src/plugin_browser_location.mjs +21 -21
  185. package/src/plugin_browser_speech.mjs +111 -111
  186. package/src/plugin_browser_storage.mjs +121 -121
  187. package/src/plugin_browser_system.mjs +31 -31
  188. package/src/plugin_browser_websocket.mjs +73 -73
  189. package/src/plugin_caniuse.mjs +29 -29
  190. package/src/plugin_datetime.mjs +394 -394
  191. package/src/plugin_httpserver.mjs +277 -277
  192. package/src/plugin_httpserver.mts +286 -286
  193. package/src/plugin_kansuji.mjs +224 -224
  194. package/src/plugin_keigo.mjs +55 -55
  195. package/src/plugin_markup.mjs +32 -32
  196. package/src/plugin_node.mjs +1047 -1047
  197. package/src/plugin_node.mts +980 -980
  198. package/src/plugin_turtle.mjs +647 -647
  199. package/src/plugin_webworker.mjs +334 -334
  200. package/src/plugin_weykturtle3d.mjs +1214 -1214
  201. package/src/plugin_worker.mjs +95 -95
  202. package/src/repl.nako3 +63 -63
  203. package/src/wnako3.mjs +12 -12
  204. package/src/wnako3.mts +11 -11
  205. package/src/wnako3_editor.css +215 -215
  206. package/src/wnako3_editor.mjs +1542 -1542
  207. package/src/wnako3_editor.mts +1658 -1657
  208. package/src/wnako3mod.mjs +213 -213
  209. package/src/wnako3mod.mts +214 -214
  210. package/src/wnako3webworker.mjs +69 -69
  211. package/test/.DS_Store +0 -0
  212. package/test/ace_editor/karma.config.js +94 -94
  213. package/test/ace_editor/test/.babelrc.json +3 -3
  214. package/test/ace_editor/test/ace_editor_test.js +178 -178
  215. package/test/ace_editor/test/html/custom_context.html +139 -139
  216. package/test/async/async_basic_test.mjs +122 -122
  217. package/test/browser/.DS_Store +0 -0
  218. package/test/browser/karma.config.js +221 -221
  219. package/test/browser/test/.babelrc.json +3 -3
  220. package/test/browser/test/compare_util.js +50 -50
  221. package/test/browser/test/html/div_basic.html +2 -2
  222. package/test/browser/test/html/event_dom_form.html +4 -4
  223. package/test/browser/test/html/event_dom_scrolldiv.html +5 -5
  224. package/test/browser/test/import_plugin_checker.js +24 -24
  225. package/test/browser/test/plugin_browser_test.js +51 -51
  226. package/test/browser/test/plugin_browser_test_ajax.js +123 -123
  227. package/test/browser/test/plugin_browser_test_color.js +18 -18
  228. package/test/browser/test/plugin_browser_test_dialog.js +72 -72
  229. package/test/browser/test/plugin_browser_test_dom_event.js +598 -598
  230. package/test/browser/test/plugin_browser_test_dom_parts.js +125 -125
  231. package/test/browser/test/plugin_browser_test_system.js +9 -9
  232. package/test/browser/test/plugin_turtle_test.js +817 -817
  233. package/test/browser/test/plugin_webworker_test.js +86 -86
  234. package/test/browser/test/require_test.js +68 -68
  235. package/test/bundled/.DS_Store +0 -0
  236. package/test/bundled/karma.config.base.js +117 -117
  237. package/test/bundled/karma.config.js +86 -86
  238. package/test/bundled/test/.babelrc.json +3 -3
  239. package/test/bundled/test/bundled_test.js +69 -69
  240. package/test/bundled/test/html/custom_context.html +65 -65
  241. package/test/bundled/test/html/custom_debug.html +66 -66
  242. package/test/bundled/test4b.cmd +52 -52
  243. package/test/bundled/test_base/.DS_Store +0 -0
  244. package/test/bundled/test_base/.babelrc.json +3 -3
  245. package/test/bundled/test_base/_checktool_test.js +25 -25
  246. package/test/bundled/test_base/basic_ajax_test.js +56 -56
  247. package/test/bundled/test_base/basic_async_test.js +18 -18
  248. package/test/bundled/test_base/basic_test.js +153 -153
  249. package/test/bundled/test_base/calc_test.js +132 -132
  250. package/test/bundled/test_base/css/browsers_box.css +114 -114
  251. package/test/bundled/test_base/html/custom_context.html +69 -69
  252. package/test/bundled/test_base/html/custom_debug.html +71 -71
  253. package/test/bundled/test_base/js/browsers_box.js +72 -72
  254. package/test/bundled/test_base/plugin_csv_test.js +37 -37
  255. package/test/bundled/test_base/plugin_datetime_test.js +115 -115
  256. package/test/bundled/test_base/plugin_kansuji_test.js +49 -49
  257. package/test/bundled/test_base/plugin_system_test.js +410 -410
  258. package/test/bundled/test_base/plugin_webworker_test.js +53 -53
  259. package/test/bundled/test_base/test_utils.js +191 -191
  260. package/test/common/.DS_Store +0 -0
  261. package/test/common/plugin_browser_test.mjs +22 -22
  262. package/test/common/plugin_browser_ut_audio_test.mjs +108 -108
  263. package/test/common/plugin_browser_ut_color_test.mjs +21 -21
  264. package/test/common/plugin_browser_ut_dialog_test.mjs +100 -100
  265. package/test/common/plugin_browser_ut_html_test.mjs +13 -13
  266. package/test/common/plugin_browser_ut_system_test.mjs +10 -10
  267. package/test/common/plugin_markup_test.mjs +23 -23
  268. package/test/jsconfig.json +19 -19
  269. package/test/karma.config.js +91 -91
  270. package/test/node/.DS_Store +0 -0
  271. package/test/node/async_test.mjs +96 -96
  272. package/test/node/commander_ja_test.mjs +89 -89
  273. package/test/node/error_message_test.mjs +243 -243
  274. package/test/node/kai_test.nako3 +6 -6
  275. package/test/node/node_test.mjs +60 -60
  276. package/test/node/plugin_broken.js.txt +3 -3
  277. package/test/node/plugin_browser_ut_ajax_test.mjs.todo +357 -357
  278. package/test/node/plugin_browser_ut_location_test.mjs +42 -42
  279. package/test/node/plugin_markup_test.mjs +47 -47
  280. package/test/node/plugin_math_test.mjs +45 -45
  281. package/test/node/plugin_node_test.mjs +98 -98
  282. package/test/node/plugin_test.mjs +44 -44
  283. package/test/node/relative_import_test_1.nako3 +1 -1
  284. package/test/node/relative_import_test_2.nako3 +2 -2
  285. package/test/node/require_nako3_test.mjs +67 -67
  286. package/test/node/requiretest.nako3 +4 -4
  287. package/test/node/requiretest_indirect.nako3 +1 -1
  288. package/test/node/requiretest_name.nako3 +5 -5
  289. package/test/node/runtime_error.nako3 +2 -2
  290. package/test/node/scope1.nako3 +10 -10
  291. package/test/node/scope2.nako3 +12 -12
  292. package/test/node/side_effects_test.mjs +39 -39
  293. package/test/node/sjis.txt +5 -5
  294. package/test/node/syntax_error.nako3 +1 -1
  295. package/test/node/wnako3_editor_test.mjs +384 -384
  296. package/tools/.DS_Store +0 -0
  297. package/tools/README.md +12 -12
  298. package/tools/check_new_version.nako3 +25 -25
  299. package/tools/nako3edit/.DS_Store +0 -0
  300. package/tools/nako3edit/a.sqlite3 +0 -0
  301. package/tools/nako3edit/html/.DS_Store +0 -0
  302. package/tools/nako3edit/html/daisyui/LICENSE +22 -22
  303. package/tools/nako3edit/html/daisyui/version_2.14.1 +1 -1
  304. package/tools/nako3edit/html/edit.html +170 -170
  305. package/tools/nako3edit/html/edit_plugin.js +6 -6
  306. package/tools/nako3edit/html/files.html +125 -125
  307. package/tools/nako3edit/html/nako3edit.css +65 -65
  308. package/tools/nako3edit/index.mjs +248 -248
  309. package/tools/nako3server/index.html +10 -10
  310. package/tools/nako3server/index.mjs +116 -116
  311. package/tools/nako3server/index.nako3 +34 -34
  312. package/core/.editorconfig +0 -6
  313. package/core/.eslintrc.cjs +0 -33
  314. package/core/.github/dependabot.yml +0 -7
  315. package/core/.github/workflows/nodejs.yml +0 -37
  316. package/core/.github/workflows/super-linter.yml +0 -61
  317. package/core/.github/workflows/textlint.yml +0 -199
  318. package/core/index.mts +0 -21
  319. package/core/test/array_test.mjs +0 -34
  320. package/core/test/basic_test.mjs +0 -344
  321. package/core/test/calc_test.mjs +0 -140
  322. package/core/test/core_module_test.mjs +0 -23
  323. package/core/test/debug_test.mjs +0 -16
  324. package/core/test/dncl_test.mjs +0 -94
  325. package/core/test/error_message_test.mjs +0 -210
  326. package/core/test/error_test.mjs +0 -16
  327. package/core/test/flow_test.mjs +0 -373
  328. package/core/test/func_call.mjs +0 -160
  329. package/core/test/func_test.mjs +0 -149
  330. package/core/test/indent_test.mjs +0 -364
  331. package/core/test/lex_test.mjs +0 -168
  332. package/core/test/literal_test.mjs +0 -73
  333. package/core/test/nako_lexer_test.mjs +0 -35
  334. package/core/test/nako_logger_test.mjs +0 -76
  335. package/core/test/nako_logger_test.mts +0 -78
  336. package/core/test/plugin_csv_test.mjs +0 -38
  337. package/core/test/plugin_promise_test.mjs +0 -18
  338. package/core/test/plugin_system_test.mjs +0 -630
  339. package/core/test/prepare_test.mjs +0 -96
  340. package/core/test/re_test.mjs +0 -22
  341. package/core/test/side_effects_test.mjs +0 -92
  342. package/core/test/variable_scope_test.mjs +0 -149
  343. package/core/tsconfig.json +0 -101
package/doc/SETUP.md CHANGED
@@ -1,157 +1,157 @@
1
- # なでしこ3 - 開発環境のセットアップ方法
2
-
3
- [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://standardjs.com/)
4
-
5
- なでしこ3自身を開発する手順をまとめたもの。なでしこ3を使うだけならば、以下の手順は不要。
6
-
7
- [Node.js](https://nodejs.org/ja/)をインストールしておく。
8
-
9
- コマンドラインから以下を実行して、必要なライブラリをシステムにインストール。
10
-
11
- このとき、npm installするときに、なでしこのモジュールで、Native Add-onを使うものがあるため、ビルド環境を整える必要がある。
12
-
13
- ## 【Windows】
14
-
15
- コンパイル環境が必要になるので、ビルドツールをインストールする。PowerShellから以下のコマンドを実行すると、自動的に必要なツールが入る。(Windowsのユーザー名に日本語が使われているとうまくコンパイルできないという情報もあるので注意)
16
-
17
- また、Gitなどのツールをインストールするために、Chocolatey( <https://chocolatey.org/> )をインストールしておく。
18
-
19
- ```bach
20
- # Chocolatey でGitをインストール
21
- cinst git
22
-
23
- # npm のビルドツール (build tools+python2)
24
- npm install -g node-gyp
25
- npm install -g windows-build-tools
26
- ```
27
-
28
- ## 【macOS】
29
-
30
- Homebrew( <https://brew.sh/index_ja> ) (そしてXcode)をインストールしておく。
31
-
32
- ## 【共通】
33
-
34
- コマンドラインから以下を実行して、nadesiko3のリポジトリをcloneし、必要なライブラリをインストール。ただし、Node.jsのバージョンv10以上が必要。もし、Ubuntuで古いのNode.jsをインストールした場合など、nモジュールを利用して最新安定版のNode.jsを利用してください。
35
-
36
- ```bash
37
- git clone https://github.com/kujirahand/nadesiko3
38
- cd nadesiko3
39
- npm install --no-optional
40
- ```
41
-
42
- コマンドラインから以下のコマンドを実行することで、ソースコードをビルドできる。
43
- srcディレクトリの中のコードを編集すると、releaseディレクトリに結果が出力される。
44
-
45
- ```bash
46
- # Node.js用のソースコードをWeb用のJSに変換
47
- npm run build
48
- ```
49
-
50
- ビルド後に以下のコマンドを実行することで、 バンドルファイル内の各パッケージがどのぐらいの容量を占めているかを可視化できる。
51
-
52
- ```bash
53
- # バンドルファイル内の各パッケージがどのぐらいの容量を占めているかを可視化
54
- $ npm run analyze
55
- ```
56
-
57
- 開発時、以下のコマンドを実行すれば、監視ビルドさせることができる。
58
-
59
- ```bash
60
- npm run watch
61
- ```
62
-
63
- また、コマンドラインから以下のコマンドを実行することで、ソースコードをテストできる。
64
-
65
- ```bash
66
- npm run test
67
- ```
68
-
69
- ## 開発時の約束
70
-
71
- ### コーディング規約について
72
-
73
- コーディング規約は、[JavaScript Standard Style](https://standardjs.com/)に準拠するものとする。
74
-
75
- ATOMエディタを使っている場合は、以下のプラグインを導入すると非常に便利。
76
-
77
- ```bash
78
- apm install linter
79
- apm install linter-js-standard
80
- ```
81
-
82
- また、EditorConfigに対応しています。
83
- (詳しくは[どんなエディタでもEditorConfigを使ってコードの統一性を高める - Qiita](https://qiita.com/naru0504/items/82f09881abaf3f4dc171)を参照)
84
- これに対応したエディタを使用することで、開発者側が意識することなくインデントやタブに関する規則に対応することが可能。
85
-
86
- ## コマンドラインからなでしこを使う方法
87
-
88
- なでしこ3ではコマンドラインからなでしこを実行できるcnako3(Windowsは、cnako3.bat)というスクリプトを用意。今後、なでしこの各種バッチファイルはなでしこ自身で記述される。
89
-
90
- ちなみに、`npm install -g nadeisko3` を実行すると、npmコマンドでcnako3コマンドが利用できるようになるが、その場合は安定版のなでしこがインストールされることになる。
91
-
92
- 環境変数に本ファイルのパスをNAKO_HOMEとして登録し、パスをNAKO_HOME/srcに通す。以下、macOS/Linuxでの `.bashrc` の記述例。(ユーザー名がkujiraの場合)
93
-
94
- ```bash
95
- HOME=/Users/kujira
96
- export NAKO_HOME=$HOME/nadesiko3
97
- export PATH=$PATH:$NAKO_HOME/src
98
- ```
99
-
100
- ### コマンドライン版なでしこの利用方法
101
-
102
- 例えば、なでしこのコマンド一覧ファイルを生成するバッチを実行する方法。
103
-
104
- ```bash
105
- cnako3 $NAKO_HOME/batch/pickup_command.nako
106
- ```
107
-
108
- テストを実行する場合には、 `-t` (`--test`) オプションを付けてcnako3を実行します。
109
-
110
- ### デモプログラムを動かす方法
111
-
112
- demoディレクトリに、なでしこをブラウザから使うデモがある。
113
-
114
- 大抵の機能はブラウザにHTMLファイルをドラッグ&ドロップすれば動くが、一部の機能はローカルサーバーを動かさないと利用できない。
115
-
116
- なでしこでは、簡易サーバーを用意。コマンドラインで以下のように入力すると、[http://localhost:3000/](http://localhost:3000/)でサーバーが起動。
117
-
118
- ```bash
119
- npm start
120
- ```
121
-
122
- ### 対応機器/ブラウザの生成
123
-
124
- コマンドラインから以下を実行して、以下のファイルを生成。
125
-
126
- * [doc/browsers.md](browsers.md): 対応機器/ブラウザ (マークダウン形式)
127
- * [demo/browsers.html](../demo/browsers.html): 対応機器/ブラウザ (HTML形式, なでしこ3エディタ用)
128
-
129
- ```bash
130
- npm run build:browsers
131
- ```
132
-
133
- ### Node.jsのパッケージの更新方法
134
-
135
- コマンドラインから以下を実行して、Node.jsのパッケージを更新。
136
-
137
- ```bash
138
- npx npm-check-updates -u
139
- npm update --no-optional
140
- ```
141
-
142
- ## Gitからリポジトリを取得して利用する場合
143
-
144
- 最低限のライブラリで良い場合には、``npm install --production``を実行するだけ。
145
-
146
- ```bash
147
- git clone https://github.com/kujirahand/nadesiko3.git
148
- cd nadesiko3
149
- npm install --production
150
- ```
151
-
152
- ## (メモ)Electronの利用に関して
153
-
154
- 以前は、本リポジトリでElectronにも対応していたが別リポジトリを用意した。
155
-
156
- - [なでしこ3配布パック(Electron)](https://github.com/kujirahand/nadesiko3electron)
157
-
1
+ # なでしこ3 - 開発環境のセットアップ方法
2
+
3
+ [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://standardjs.com/)
4
+
5
+ なでしこ3自身を開発する手順をまとめたもの。なでしこ3を使うだけならば、以下の手順は不要。
6
+
7
+ [Node.js](https://nodejs.org/ja/)をインストールしておく。
8
+
9
+ コマンドラインから以下を実行して、必要なライブラリをシステムにインストール。
10
+
11
+ このとき、npm installするときに、なでしこのモジュールで、Native Add-onを使うものがあるため、ビルド環境を整える必要がある。
12
+
13
+ ## 【Windows】
14
+
15
+ コンパイル環境が必要になるので、ビルドツールをインストールする。PowerShellから以下のコマンドを実行すると、自動的に必要なツールが入る。(Windowsのユーザー名に日本語が使われているとうまくコンパイルできないという情報もあるので注意)
16
+
17
+ また、Gitなどのツールをインストールするために、Chocolatey( <https://chocolatey.org/> )をインストールしておく。
18
+
19
+ ```bach
20
+ # Chocolatey でGitをインストール
21
+ cinst git
22
+
23
+ # npm のビルドツール (build tools+python2)
24
+ npm install -g node-gyp
25
+ npm install -g windows-build-tools
26
+ ```
27
+
28
+ ## 【macOS】
29
+
30
+ Homebrew( <https://brew.sh/index_ja> ) (そしてXcode)をインストールしておく。
31
+
32
+ ## 【共通】
33
+
34
+ コマンドラインから以下を実行して、nadesiko3のリポジトリをcloneし、必要なライブラリをインストール。ただし、Node.jsのバージョンv10以上が必要。もし、Ubuntuで古いのNode.jsをインストールした場合など、nモジュールを利用して最新安定版のNode.jsを利用してください。
35
+
36
+ ```bash
37
+ git clone https://github.com/kujirahand/nadesiko3
38
+ cd nadesiko3
39
+ npm install --no-optional
40
+ ```
41
+
42
+ コマンドラインから以下のコマンドを実行することで、ソースコードをビルドできる。
43
+ srcディレクトリの中のコードを編集すると、releaseディレクトリに結果が出力される。
44
+
45
+ ```bash
46
+ # Node.js用のソースコードをWeb用のJSに変換
47
+ npm run build
48
+ ```
49
+
50
+ ビルド後に以下のコマンドを実行することで、 バンドルファイル内の各パッケージがどのぐらいの容量を占めているかを可視化できる。
51
+
52
+ ```bash
53
+ # バンドルファイル内の各パッケージがどのぐらいの容量を占めているかを可視化
54
+ $ npm run analyze
55
+ ```
56
+
57
+ 開発時、以下のコマンドを実行すれば、監視ビルドさせることができる。
58
+
59
+ ```bash
60
+ npm run watch
61
+ ```
62
+
63
+ また、コマンドラインから以下のコマンドを実行することで、ソースコードをテストできる。
64
+
65
+ ```bash
66
+ npm run test
67
+ ```
68
+
69
+ ## 開発時の約束
70
+
71
+ ### コーディング規約について
72
+
73
+ コーディング規約は、[JavaScript Standard Style](https://standardjs.com/)に準拠するものとする。
74
+
75
+ ATOMエディタを使っている場合は、以下のプラグインを導入すると非常に便利。
76
+
77
+ ```bash
78
+ apm install linter
79
+ apm install linter-js-standard
80
+ ```
81
+
82
+ また、EditorConfigに対応しています。
83
+ (詳しくは[どんなエディタでもEditorConfigを使ってコードの統一性を高める - Qiita](https://qiita.com/naru0504/items/82f09881abaf3f4dc171)を参照)
84
+ これに対応したエディタを使用することで、開発者側が意識することなくインデントやタブに関する規則に対応することが可能。
85
+
86
+ ## コマンドラインからなでしこを使う方法
87
+
88
+ なでしこ3ではコマンドラインからなでしこを実行できるcnako3(Windowsは、cnako3.bat)というスクリプトを用意。今後、なでしこの各種バッチファイルはなでしこ自身で記述される。
89
+
90
+ ちなみに、`npm install -g nadeisko3` を実行すると、npmコマンドでcnako3コマンドが利用できるようになるが、その場合は安定版のなでしこがインストールされることになる。
91
+
92
+ 環境変数に本ファイルのパスをNAKO_HOMEとして登録し、パスをNAKO_HOME/srcに通す。以下、macOS/Linuxでの `.bashrc` の記述例。(ユーザー名がkujiraの場合)
93
+
94
+ ```bash
95
+ HOME=/Users/kujira
96
+ export NAKO_HOME=$HOME/nadesiko3
97
+ export PATH=$PATH:$NAKO_HOME/src
98
+ ```
99
+
100
+ ### コマンドライン版なでしこの利用方法
101
+
102
+ 例えば、なでしこのコマンド一覧ファイルを生成するバッチを実行する方法。
103
+
104
+ ```bash
105
+ cnako3 $NAKO_HOME/batch/pickup_command.nako
106
+ ```
107
+
108
+ テストを実行する場合には、 `-t` (`--test`) オプションを付けてcnako3を実行します。
109
+
110
+ ### デモプログラムを動かす方法
111
+
112
+ demoディレクトリに、なでしこをブラウザから使うデモがある。
113
+
114
+ 大抵の機能はブラウザにHTMLファイルをドラッグ&ドロップすれば動くが、一部の機能はローカルサーバーを動かさないと利用できない。
115
+
116
+ なでしこでは、簡易サーバーを用意。コマンドラインで以下のように入力すると、[http://localhost:3000/](http://localhost:3000/)でサーバーが起動。
117
+
118
+ ```bash
119
+ npm start
120
+ ```
121
+
122
+ ### 対応機器/ブラウザの生成
123
+
124
+ コマンドラインから以下を実行して、以下のファイルを生成。
125
+
126
+ * [doc/browsers.md](browsers.md): 対応機器/ブラウザ (マークダウン形式)
127
+ * [demo/browsers.html](../demo/browsers.html): 対応機器/ブラウザ (HTML形式, なでしこ3エディタ用)
128
+
129
+ ```bash
130
+ npm run build:browsers
131
+ ```
132
+
133
+ ### Node.jsのパッケージの更新方法
134
+
135
+ コマンドラインから以下を実行して、Node.jsのパッケージを更新。
136
+
137
+ ```bash
138
+ npx npm-check-updates -u
139
+ npm update --no-optional
140
+ ```
141
+
142
+ ## Gitからリポジトリを取得して利用する場合
143
+
144
+ 最低限のライブラリで良い場合には、``npm install --production``を実行するだけ。
145
+
146
+ ```bash
147
+ git clone https://github.com/kujirahand/nadesiko3.git
148
+ cd nadesiko3
149
+ npm install --production
150
+ ```
151
+
152
+ ## (メモ)Electronの利用に関して
153
+
154
+ 以前は、本リポジトリでElectronにも対応していたが別リポジトリを用意した。
155
+
156
+ - [なでしこ3配布パック(Electron)](https://github.com/kujirahand/nadesiko3electron)
157
+
package/doc/about.md CHANGED
@@ -1,17 +1,17 @@
1
- # なでしこ3とは
2
-
3
- 日本語のプログラミング言語「なでしこ」(第三版)です。JavaScriptをベースとしているので、PC/スマホ/タブレットなど、さまざまな環境で動作させることができます。
4
-
5
- -[URL][なでしこ3/マニュアル](https://nadesi.com/v3/doc/)
6
-
7
- ## 開発目標
8
-
9
- - (日本語の母語話者を対象とした) 母国語に特化したプログラミング言語
10
- - ブラウザで手軽に試せること
11
- - 教育用途に特化
12
- - 仕事の自動化
13
-
14
- ## 対応機器/ブラウザ
15
-
16
- - [対応ブラウザの一覧](./browsers.md)
17
-
1
+ # なでしこ3とは
2
+
3
+ 日本語のプログラミング言語「なでしこ」(第三版)です。JavaScriptをベースとしているので、PC/スマホ/タブレットなど、さまざまな環境で動作させることができます。
4
+
5
+ -[URL][なでしこ3/マニュアル](https://nadesi.com/v3/doc/)
6
+
7
+ ## 開発目標
8
+
9
+ - (日本語の母語話者を対象とした) 母国語に特化したプログラミング言語
10
+ - ブラウザで手軽に試せること
11
+ - 教育用途に特化
12
+ - 仕事の自動化
13
+
14
+ ## 対応機器/ブラウザ
15
+
16
+ - [対応ブラウザの一覧](./browsers.md)
17
+
package/doc/browsers.md CHANGED
@@ -1,26 +1,26 @@
1
- # なでしこ3 対応ブラウザ一覧
2
-
3
- 日本語プログラミング言語「なでしこ3」は以下のブラウザに対応しています。
4
-
5
- ## デスクトップ
6
-
7
- - Edge (100/99/98以上)
8
- - Firefox (99/98/97/91以上)
9
- - Chrome (100/99/98/97以上)
10
- - Safari (15.4/15.2-15.3/14.1以上)
11
- - Opera (83/82以上)
12
- - Node.js (17.9.0/16.14.0/14.19.0以上)
13
-
14
- ## モバイル
15
-
16
- - Safari on iOS (15.4/15.2-15.3/15.0-15.1/14.5-14.8/14.0-14.4/12.2-12.5以上)
17
- - Opera Mini (all以上)
18
- - Android Browser (100以上)
19
- - Opera Mobile (64以上)
20
- - Chrome for Android (100以上)
21
- - Firefox for Android (99以上)
22
- - UC Browser for Android (12.12以上)
23
- - Samsung Internet (16.0/15.0以上)
24
- - QQ Browser (10.4以上)
25
- - Baidu Browser (7.12以上)
26
- - KaiOS Browser (2.5以上)
1
+ # なでしこ3 対応ブラウザ一覧
2
+
3
+ 日本語プログラミング言語「なでしこ3」は以下のブラウザに対応しています。
4
+
5
+ ## デスクトップ
6
+
7
+ - Edge (100/99/98以上)
8
+ - Firefox (99/98/97/91以上)
9
+ - Chrome (100/99/98/97以上)
10
+ - Safari (15.4/15.2-15.3/14.1以上)
11
+ - Opera (83/82以上)
12
+ - Node.js (17.9.0/16.14.0/14.19.0以上)
13
+
14
+ ## モバイル
15
+
16
+ - Safari on iOS (15.4/15.2-15.3/15.0-15.1/14.5-14.8/14.0-14.4/12.2-12.5以上)
17
+ - Opera Mini (all以上)
18
+ - Android Browser (100以上)
19
+ - Opera Mobile (64以上)
20
+ - Chrome for Android (100以上)
21
+ - Firefox for Android (99以上)
22
+ - UC Browser for Android (12.12以上)
23
+ - Samsung Internet (16.0/15.0以上)
24
+ - QQ Browser (10.4以上)
25
+ - Baidu Browser (7.12以上)
26
+ - KaiOS Browser (2.5以上)
package/doc/docgen.md CHANGED
@@ -1,21 +1,21 @@
1
- # なでしこ3のマニュアルについて
2
-
3
- なでしこ3の[マニュアル](https://nadesi.com/v3/doc/)はkonawiki3形式になっており、[こちら](https://github.com/kujirahand/nadesiko3doc)で保守されている。
4
-
5
- ## 命令一覧ページ
6
-
7
- なお、[命令一覧ページ](https://nadesi.com/v3/doc/index.php?%E5%91%BD%E4%BB%A4%E4%B8%80%E8%A6%A7%2F%E6%A9%9F%E8%83%BD%E9%A0%86)の目次と概要は、マニュアル生成スクリプトにより生成されている。リポジトリ内のソースコードのマニュアルの自動生成は以下のコマンドで生成できる。
8
-
9
- ```sh
10
- npm build:command
11
- ```
12
-
13
- ## 独自のプラグインの目次を生成するには
14
-
15
- 独自のプラグインを作った場合、マニュアル生成機能を利用して、独自のマニュアルを生成できる。
16
-
17
- ```sh
18
- cnako3 batch/jsplugin2text.nako3 /plugin/path/nadesiko3-xxx
19
- ```
20
-
21
- 生成したテキストは、konawiki3形式となっている。
1
+ # なでしこ3のマニュアルについて
2
+
3
+ なでしこ3の[マニュアル](https://nadesi.com/v3/doc/)はkonawiki3形式になっており、[こちら](https://github.com/kujirahand/nadesiko3doc)で保守されている。
4
+
5
+ ## 命令一覧ページ
6
+
7
+ なお、[命令一覧ページ](https://nadesi.com/v3/doc/index.php?%E5%91%BD%E4%BB%A4%E4%B8%80%E8%A6%A7%2F%E6%A9%9F%E8%83%BD%E9%A0%86)の目次と概要は、マニュアル生成スクリプトにより生成されている。リポジトリ内のソースコードのマニュアルの自動生成は以下のコマンドで生成できる。
8
+
9
+ ```sh
10
+ npm build:command
11
+ ```
12
+
13
+ ## 独自のプラグインの目次を生成するには
14
+
15
+ 独自のプラグインを作った場合、マニュアル生成機能を利用して、独自のマニュアルを生成できる。
16
+
17
+ ```sh
18
+ cnako3 batch/jsplugin2text.nako3 /plugin/path/nadesiko3-xxx
19
+ ```
20
+
21
+ 生成したテキストは、konawiki3形式となっている。
package/doc/editor.md CHANGED
@@ -1,44 +1,44 @@
1
- # エディタの仕様
2
-
3
- ## 通常のエディタ
4
-
5
- HTMLに以下のコードを挿入することでエディタを実装できる。
6
-
7
- ```html
8
- ...
9
- <head>
10
- <link rel="stylesheet" type="text/css" href="basic.css">
11
- <link rel="stylesheet" href="../src/wnako3_editor.css">
12
- <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js"
13
- integrity="sha512-GZ1RIgZaSc8rnco/8CXfRdCpDxRCphenIiZ2ztLy3XQfCbQUSCuk8IudvNHxkRA3oUg6q0qejgN/qqyG1duv5Q=="
14
- crossorigin="anonymous"></script>
15
- <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-language_tools.min.js"
16
- integrity="sha512-8qx1DL/2Wsrrij2TWX5UzvEaYOFVndR7BogdpOyF4ocMfnfkw28qt8ULkXD9Tef0bLvh3TpnSAljDC7uyniEuQ=="
17
- crossorigin="anonymous"></script>
18
- <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-options.min.js"
19
- integrity="sha512-oHR+WVzBiVZ6njlMVlDDLUIOLRDfUUfRQ55PfkZvgjwuvGqL4ohCTxaahJIxTmtya4jgyk0zmOxDMuLzbfqQDA=="
20
- crossorigin="anonymous"></script>
21
- <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-code_lens.min.js"
22
- integrity="sha512-gsDyyKTnOmSWRDzUbpYcPjzVsEyFGSWeWefzVKvbMULPR2ElIlKKsOtU3ycfybN9kncZXKLFSsUiG3cgJUbc/g=="
23
- crossorigin="anonymous"></script>
24
- </head>
25
- <body>
26
- ...
27
- <div class="editor-component">
28
- <script type="application/json">
29
- {
30
- "title": "{タイトル (エディタのtitle属性)}",
31
- "code": "{エディタに入力するコードの初期値}"
32
- }
33
- </script>
34
- </div>
35
- ...
36
- <script src="../release/wnako3.js"></script>
37
- <script src="../release/editor.js"></script>
38
- ...
39
- <script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/8.3.0/mocha.min.js"
40
- integrity="sha512-LA/TpBXau/JNubKzHQhdi5vGkRLyQjs1vpuk2W1nc8WNgf/pCqBplD8MzlzeKJQTZPvkEZi0HqBDfRC2EyLMXw=="
41
- crossorigin="anonymous"></script>
42
- </body>
43
- ...
44
- ```
1
+ # エディタの仕様
2
+
3
+ ## 通常のエディタ
4
+
5
+ HTMLに以下のコードを挿入することでエディタを実装できる。
6
+
7
+ ```html
8
+ ...
9
+ <head>
10
+ <link rel="stylesheet" type="text/css" href="basic.css">
11
+ <link rel="stylesheet" href="../src/wnako3_editor.css">
12
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js"
13
+ integrity="sha512-GZ1RIgZaSc8rnco/8CXfRdCpDxRCphenIiZ2ztLy3XQfCbQUSCuk8IudvNHxkRA3oUg6q0qejgN/qqyG1duv5Q=="
14
+ crossorigin="anonymous"></script>
15
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-language_tools.min.js"
16
+ integrity="sha512-8qx1DL/2Wsrrij2TWX5UzvEaYOFVndR7BogdpOyF4ocMfnfkw28qt8ULkXD9Tef0bLvh3TpnSAljDC7uyniEuQ=="
17
+ crossorigin="anonymous"></script>
18
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-options.min.js"
19
+ integrity="sha512-oHR+WVzBiVZ6njlMVlDDLUIOLRDfUUfRQ55PfkZvgjwuvGqL4ohCTxaahJIxTmtya4jgyk0zmOxDMuLzbfqQDA=="
20
+ crossorigin="anonymous"></script>
21
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ext-code_lens.min.js"
22
+ integrity="sha512-gsDyyKTnOmSWRDzUbpYcPjzVsEyFGSWeWefzVKvbMULPR2ElIlKKsOtU3ycfybN9kncZXKLFSsUiG3cgJUbc/g=="
23
+ crossorigin="anonymous"></script>
24
+ </head>
25
+ <body>
26
+ ...
27
+ <div class="editor-component">
28
+ <script type="application/json">
29
+ {
30
+ "title": "{タイトル (エディタのtitle属性)}",
31
+ "code": "{エディタに入力するコードの初期値}"
32
+ }
33
+ </script>
34
+ </div>
35
+ ...
36
+ <script src="../release/wnako3.js"></script>
37
+ <script src="../release/editor.js"></script>
38
+ ...
39
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/8.3.0/mocha.min.js"
40
+ integrity="sha512-LA/TpBXau/JNubKzHQhdi5vGkRLyQjs1vpuk2W1nc8WNgf/pCqBplD8MzlzeKJQTZPvkEZi0HqBDfRC2EyLMXw=="
41
+ crossorigin="anonymous"></script>
42
+ </body>
43
+ ...
44
+ ```
package/doc/files.md CHANGED
@@ -1,39 +1,39 @@
1
- # なでしこを構成するファイルたち
2
-
3
- ## src/nako3.mjs
4
-
5
- なでしこコンパイラ本体。なでしこのソースコードをJSに変換する。変換処理は、以下のように行われる。
6
-
7
- - (1) なでしこソース
8
- - (2) トークン列(語句を1つずつに区切ったもの)
9
- - (3) 構文木(中間表現)
10
- - (3) JavaScriptソース
11
-
12
- ## src/nako_prepare.mjs
13
-
14
- なでしこのソースコードの前置処理を行うもの。主に全角半角の変換処理を行う。
15
-
16
- ## src/nako_parser3.mjs
17
-
18
- なでしこ構文から構文木を生成するもの。
19
-
20
- ## src/nako_gen.mjs
21
-
22
- 構文木を元に、JavaScriptのコードを生成するもの。
23
-
24
- ## src/plugin_xxx.mjs
25
-
26
- なでしこの命令を定義したプラグイン。
27
-
28
- ## src/cnako3.mjs + src/cnako3mod.mjs
29
-
30
- バッチファイル実行用。コマンドラインのインタフェースを実装するもの。
31
-
32
- ## src/wnako3.mjs
33
-
34
- ブラウザ用。
35
-
36
- ## src/enako3.mjs
37
-
38
- Electronによるアプリ本体。
39
-
1
+ # なでしこを構成するファイルたち
2
+
3
+ ## src/nako3.mjs
4
+
5
+ なでしこコンパイラ本体。なでしこのソースコードをJSに変換する。変換処理は、以下のように行われる。
6
+
7
+ - (1) なでしこソース
8
+ - (2) トークン列(語句を1つずつに区切ったもの)
9
+ - (3) 構文木(中間表現)
10
+ - (3) JavaScriptソース
11
+
12
+ ## src/nako_prepare.mjs
13
+
14
+ なでしこのソースコードの前置処理を行うもの。主に全角半角の変換処理を行う。
15
+
16
+ ## src/nako_parser3.mjs
17
+
18
+ なでしこ構文から構文木を生成するもの。
19
+
20
+ ## src/nako_gen.mjs
21
+
22
+ 構文木を元に、JavaScriptのコードを生成するもの。
23
+
24
+ ## src/plugin_xxx.mjs
25
+
26
+ なでしこの命令を定義したプラグイン。
27
+
28
+ ## src/cnako3.mjs + src/cnako3mod.mjs
29
+
30
+ バッチファイル実行用。コマンドラインのインタフェースを実装するもの。
31
+
32
+ ## src/wnako3.mjs
33
+
34
+ ブラウザ用。
35
+
36
+ ## src/enako3.mjs
37
+
38
+ Electronによるアプリ本体。
39
+