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
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
+