nadesiko3 3.3.11 → 3.3.14

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 (279) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +121 -109
  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 +14 -14
  7. package/batch/calc_hash.nako3 +29 -29
  8. package/batch/cmd_txt2json.nako3 +72 -72
  9. package/batch/command.txt +52 -1
  10. package/batch/command_nakopad.txt +46 -1
  11. package/batch/download-extlib.nako3 +43 -43
  12. package/batch/gen_command_nakopad.nako3 +57 -57
  13. package/batch/jsplugin2text.nako3 +269 -269
  14. package/batch/pickup_command.nako3 +84 -84
  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/demo/ace_editor.html +89 -89
  21. package/demo/ace_editor_tabs.html +161 -161
  22. package/demo/basic.html +71 -71
  23. package/demo/browsers.html +6 -6
  24. package/demo/css/basic.css +3 -3
  25. package/demo/css/common.css +157 -157
  26. package/demo/css/editor.css +8 -8
  27. package/demo/css/flow.css +3 -3
  28. package/demo/css/index.css +3 -3
  29. package/demo/extlib/ace@1.4.12/ace.js +17 -0
  30. package/demo/extlib/ace@1.4.12/ext-code_lens.min.js +1 -0
  31. package/demo/extlib/ace@1.4.12/ext-language_tools.min.js +1 -0
  32. package/demo/extlib/ace@1.4.12/ext-options.min.js +1 -0
  33. package/demo/extlib/ace@1.4.12/ext-settings_menu.js +8 -0
  34. package/demo/extlib/ace@1.4.12/keybinding-vscode.js +8 -0
  35. package/demo/extlib/ace@1.4.12/theme-monokai.js +8 -0
  36. package/demo/extlib/ace@1.4.12/theme-xcode.js +8 -0
  37. package/demo/extlib/chart.js@3.2.1/chart.min.js +13 -0
  38. package/demo/extlib/pure-min.css +11 -0
  39. package/demo/flow.html +98 -98
  40. package/demo/graph.html +53 -53
  41. package/demo/image/nakopad-icon256.png +0 -0
  42. package/demo/index.html +133 -133
  43. package/demo/js/common.js +17 -17
  44. package/demo/js/turtle3d_test.js +44 -44
  45. package/demo/js/turtle_test.js +44 -44
  46. package/demo/nako3/aaa/bbb/ccc.nako3 +2 -0
  47. package/demo/nako3/aaa/p1.nako3 +4 -0
  48. package/demo/nako3/aaa.nako3 +5 -0
  49. package/demo/nako3/taberu.nako3 +5 -0
  50. package/demo/runscript.html +47 -47
  51. package/demo/runscript2.html +33 -33
  52. package/demo/runscript3.html +35 -35
  53. package/demo/turtle.html +58 -58
  54. package/demo/turtle2.html +141 -141
  55. package/demo/turtle3.html +279 -279
  56. package/demo/turtle3d.html +58 -58
  57. package/demo/turtle3d2.html +107 -107
  58. package/demo/version.html +24 -24
  59. package/doc/SETUP.md +157 -157
  60. package/doc/about.md +34 -34
  61. package/doc/browsers.md +6 -6
  62. package/doc/docgen.md +21 -21
  63. package/doc/editor.md +44 -44
  64. package/doc/files.md +37 -37
  65. package/doc/plugins.md +196 -196
  66. package/doc/release.md +78 -78
  67. package/doc/win32.md +57 -57
  68. package/package.json +206 -206
  69. package/release/_hash.txt +28 -28
  70. package/release/_script-tags.txt +14 -14
  71. package/release/command.json +1 -1
  72. package/release/command.json.js +1 -1
  73. package/release/command_cnako3.json +1 -1
  74. package/release/command_list.json +1 -1
  75. package/release/editor.js +1 -1
  76. package/release/nako_gen_async.js.LICENSE.txt +35 -0
  77. package/release/plugin_caniuse.js +1 -1
  78. package/release/plugin_caniuse.js.LICENSE.txt +11 -0
  79. package/release/plugin_csv.js.LICENSE.txt +15 -0
  80. package/release/plugin_datetime.js.LICENSE.txt +15 -0
  81. package/release/plugin_kansuji.js +1 -1
  82. package/release/plugin_kansuji.js.LICENSE.txt +3 -0
  83. package/release/plugin_markup.js +1 -1
  84. package/release/plugin_markup.js.LICENSE.txt +11 -0
  85. package/release/plugin_turtle.js.LICENSE.txt +15 -0
  86. package/release/plugin_webworker.js.LICENSE.txt +3 -0
  87. package/release/plugin_weykturtle3d.js.LICENSE.txt +3 -0
  88. package/release/stats.json +1 -1
  89. package/release/version.js +1 -1
  90. package/release/wnako3.js +1 -1
  91. package/release/wnako3.js.LICENSE.txt +1 -1
  92. package/release/wnako3webworker.js.LICENSE.txt +3 -0
  93. package/src/browsers.mjs +1 -1
  94. package/src/browsers.txt +6 -7
  95. package/src/browsers_agents.json +2 -2
  96. package/src/browsers_agents.mjs +1 -1
  97. package/src/cnako3.mjs +13 -13
  98. package/src/cnako3mod.mjs +543 -501
  99. package/src/commander_ja.mjs +159 -159
  100. package/src/enako3.mjs +69 -69
  101. package/src/era.mjs +22 -22
  102. package/src/image_turtle-elephant.mjs +4 -4
  103. package/src/image_turtle-panda.mjs +4 -4
  104. package/src/image_turtle64.mjs +4 -4
  105. package/src/index.mjs +12 -9
  106. package/src/nako3.mjs +869 -870
  107. package/src/nako3_assert.mjs +38 -38
  108. package/src/nako3editorfix.sfd +106 -106
  109. package/src/nako3server.mjs +58 -58
  110. package/src/nako_colors.mjs +86 -86
  111. package/src/nako_errors.mjs +166 -166
  112. package/src/nako_from_dncl.mjs +267 -267
  113. package/src/nako_gen.mjs +1628 -1626
  114. package/src/nako_gen_async.mjs +1707 -1707
  115. package/src/nako_global.mjs +113 -113
  116. package/src/nako_indent.mjs +485 -485
  117. package/src/nako_josi_list.mjs +48 -48
  118. package/src/nako_lex_rules.mjs +244 -244
  119. package/src/nako_lexer.mjs +635 -635
  120. package/src/nako_logger.mjs +137 -137
  121. package/src/nako_parser3.mjs +2140 -2135
  122. package/src/nako_parser_base.mjs +331 -332
  123. package/src/nako_parser_const.mjs +35 -35
  124. package/src/nako_prepare.mjs +334 -334
  125. package/src/nako_reserved_words.mjs +41 -41
  126. package/src/nako_source_mapping.mjs +244 -244
  127. package/src/nako_test.mjs +37 -37
  128. package/src/nako_version.mjs +2 -2
  129. package/src/plugin_browser.mjs +205 -205
  130. package/src/plugin_browser_ajax.mjs +399 -399
  131. package/src/plugin_browser_audio.mjs +109 -109
  132. package/src/plugin_browser_canvas.mjs +461 -461
  133. package/src/plugin_browser_chart.mjs +294 -294
  134. package/src/plugin_browser_color.mjs +49 -49
  135. package/src/plugin_browser_crypto.mjs +26 -26
  136. package/src/plugin_browser_dialog.mjs +53 -53
  137. package/src/plugin_browser_dom_basic.mjs +336 -336
  138. package/src/plugin_browser_dom_event.mjs +193 -193
  139. package/src/plugin_browser_dom_parts.mjs +398 -398
  140. package/src/plugin_browser_geolocation.mjs +51 -51
  141. package/src/plugin_browser_hotkey.mjs +25 -25
  142. package/src/plugin_browser_html.mjs +59 -59
  143. package/src/plugin_browser_in_worker.mjs +44 -44
  144. package/src/plugin_browser_location.mjs +21 -21
  145. package/src/plugin_browser_speech.mjs +111 -111
  146. package/src/plugin_browser_storage.mjs +121 -121
  147. package/src/plugin_browser_system.mjs +30 -30
  148. package/src/plugin_browser_websocket.mjs +73 -73
  149. package/src/plugin_caniuse.mjs +29 -29
  150. package/src/plugin_csv.mjs +56 -56
  151. package/src/plugin_datetime.mjs +407 -407
  152. package/src/plugin_express.mjs +213 -213
  153. package/src/plugin_kansuji.mjs +224 -224
  154. package/src/plugin_keigo.mjs +55 -55
  155. package/src/plugin_markup.mjs +32 -32
  156. package/src/plugin_math.mjs +324 -324
  157. package/src/plugin_node.mjs +1005 -1003
  158. package/src/plugin_promise.mjs +92 -92
  159. package/src/plugin_system.mjs +2665 -2665
  160. package/src/plugin_test.mjs +36 -36
  161. package/src/plugin_turtle.mjs +647 -647
  162. package/src/plugin_webworker.mjs +334 -334
  163. package/src/plugin_weykturtle3d.mjs +1214 -1214
  164. package/src/plugin_worker.mjs +95 -95
  165. package/src/repl.nako3 +63 -63
  166. package/src/wnako3.mjs +200 -177
  167. package/src/wnako3_editor.css +215 -215
  168. package/src/wnako3_editor.mjs +1651 -1651
  169. package/src/wnako3webworker.mjs +70 -70
  170. package/test/ace_editor/karma.config.js +94 -94
  171. package/test/ace_editor/test/.babelrc.json +3 -3
  172. package/test/ace_editor/test/ace_editor_test.js +178 -178
  173. package/test/ace_editor/test/html/custom_context.html +139 -139
  174. package/test/async/async_basic_test.mjs +123 -123
  175. package/test/browser/karma.config.js +221 -221
  176. package/test/browser/test/.babelrc.json +3 -3
  177. package/test/browser/test/compare_util.js +50 -50
  178. package/test/browser/test/html/div_basic.html +2 -2
  179. package/test/browser/test/html/event_dom_form.html +4 -4
  180. package/test/browser/test/html/event_dom_scrolldiv.html +5 -5
  181. package/test/browser/test/import_plugin_checker.js +24 -24
  182. package/test/browser/test/plugin_browser_test.js +52 -52
  183. package/test/browser/test/plugin_browser_test_ajax.js +123 -123
  184. package/test/browser/test/plugin_browser_test_color.js +18 -18
  185. package/test/browser/test/plugin_browser_test_dialog.js +72 -72
  186. package/test/browser/test/plugin_browser_test_dom_event.js +598 -598
  187. package/test/browser/test/plugin_browser_test_dom_parts.js +125 -125
  188. package/test/browser/test/plugin_browser_test_system.js +9 -9
  189. package/test/browser/test/plugin_turtle_test.js +817 -817
  190. package/test/browser/test/plugin_webworker_test.js +87 -87
  191. package/test/browser/test/require_test.js +71 -71
  192. package/test/bundled/karma.config.base.js +117 -117
  193. package/test/bundled/karma.config.js +86 -86
  194. package/test/bundled/test/.babelrc.json +3 -3
  195. package/test/bundled/test/bundled_test.js +69 -69
  196. package/test/bundled/test/html/custom_context.html +65 -65
  197. package/test/bundled/test/html/custom_debug.html +66 -66
  198. package/test/bundled/test4b.cmd +52 -52
  199. package/test/bundled/test_base/.babelrc.json +3 -3
  200. package/test/bundled/test_base/_checktool_test.js +25 -25
  201. package/test/bundled/test_base/basic_ajax_test.js +56 -56
  202. package/test/bundled/test_base/basic_async_test.js +18 -18
  203. package/test/bundled/test_base/basic_test.js +153 -153
  204. package/test/bundled/test_base/calc_test.js +132 -132
  205. package/test/bundled/test_base/css/browsers_box.css +114 -114
  206. package/test/bundled/test_base/html/custom_context.html +69 -69
  207. package/test/bundled/test_base/html/custom_debug.html +71 -71
  208. package/test/bundled/test_base/js/browsers_box.js +72 -72
  209. package/test/bundled/test_base/plugin_csv_test.js +37 -37
  210. package/test/bundled/test_base/plugin_datetime_test.js +115 -115
  211. package/test/bundled/test_base/plugin_kansuji_test.js +49 -49
  212. package/test/bundled/test_base/plugin_system_test.js +410 -410
  213. package/test/bundled/test_base/plugin_webworker_test.js +53 -53
  214. package/test/bundled/test_base/test_utils.js +191 -191
  215. package/test/common/array_test.mjs +40 -40
  216. package/test/common/basic_test.mjs +331 -331
  217. package/test/common/calc_test.mjs +144 -144
  218. package/test/common/debug_test.mjs +16 -16
  219. package/test/common/dncl_test.mjs +95 -95
  220. package/test/common/error_test.mjs +16 -16
  221. package/test/common/flow_test.mjs +374 -374
  222. package/test/common/func_call.mjs +160 -139
  223. package/test/common/func_test.mjs +149 -149
  224. package/test/common/indent_test.mjs +363 -363
  225. package/test/common/lex_test.mjs +155 -155
  226. package/test/common/literal_test.mjs +72 -72
  227. package/test/common/nako_lexer_test.mjs +33 -0
  228. package/test/common/nako_logger_test.mjs +26 -26
  229. package/test/common/plugin_browser_test.mjs +24 -24
  230. package/test/common/plugin_browser_ut_audio_test.mjs +88 -88
  231. package/test/common/plugin_browser_ut_color_test.mjs +21 -21
  232. package/test/common/plugin_browser_ut_dialog_test.mjs +100 -100
  233. package/test/common/plugin_browser_ut_html_test.mjs +13 -13
  234. package/test/common/plugin_browser_ut_system_test.mjs +10 -10
  235. package/test/common/plugin_csv_test.mjs +39 -39
  236. package/test/common/plugin_datetime_test.mjs +120 -120
  237. package/test/common/plugin_kansuji_test.mjs +59 -59
  238. package/test/common/plugin_markup_test.mjs +21 -21
  239. package/test/common/plugin_promise_test.mjs +18 -18
  240. package/test/common/plugin_system_test.mjs +606 -606
  241. package/test/common/prepare_test.mjs +93 -93
  242. package/test/common/re_test.mjs +20 -20
  243. package/test/common/variable_scope_test.mjs +121 -121
  244. package/test/jsconfig.json +19 -19
  245. package/test/karma.config.js +91 -91
  246. package/test/node/async_test.mjs +81 -81
  247. package/test/node/commander_ja_test.mjs +87 -87
  248. package/test/node/error_message_test.mjs +249 -249
  249. package/test/node/kai_test.nako3 +6 -6
  250. package/test/node/node_test.mjs +57 -57
  251. package/test/node/plugin_broken.js.txt +3 -3
  252. package/test/node/plugin_browser_ut_ajax_test.mjs.todo +357 -357
  253. package/test/node/plugin_browser_ut_location_test.mjs +32 -32
  254. package/test/node/plugin_markup_test.mjs +43 -43
  255. package/test/node/plugin_math_test.mjs +42 -42
  256. package/test/node/plugin_node_test.mjs +97 -97
  257. package/test/node/plugin_test.mjs +42 -42
  258. package/test/node/relative_import_test_1.nako3 +1 -1
  259. package/test/node/relative_import_test_2.nako3 +2 -2
  260. package/test/node/require_nako3_test.mjs +66 -66
  261. package/test/node/requiretest.nako3 +4 -4
  262. package/test/node/requiretest_indirect.nako3 +1 -1
  263. package/test/node/requiretest_name.nako3 +5 -5
  264. package/test/node/runtime_error.nako3 +2 -2
  265. package/test/node/scope1.nako3 +10 -10
  266. package/test/node/scope2.nako3 +12 -12
  267. package/test/node/side_effects_test.mjs +117 -117
  268. package/test/node/sjis.txt +5 -5
  269. package/test/node/syntax_error.nako3 +1 -1
  270. package/test/node/wnako3_editor_test.mjs +378 -378
  271. package/tools/README.md +7 -7
  272. package/tools/nako3edit/html/daisyui/LICENSE +22 -22
  273. package/tools/nako3edit/html/daisyui/version_2.14.1 +1 -1
  274. package/tools/nako3edit/html/edit.html +168 -168
  275. package/tools/nako3edit/html/edit_plugin.js +6 -6
  276. package/tools/nako3edit/html/files.html +125 -125
  277. package/tools/nako3edit/html/nako3edit.css +65 -65
  278. package/tools/nako3edit/index.nako3 +187 -187
  279. package/tools/nako3edit/run.mjs +18 -18
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2017 kujirahand
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2017 kujirahand
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,109 +1,121 @@
1
- # 日本語プログラミング言語「なでしこ3」
2
-
3
- [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
4
- [![npm version](https://badge.fury.io/js/nadesiko3.svg)](https://www.npmjs.com/package/nadesiko3)
5
- ![Node.js CI](https://github.com/kujirahand/nadesiko3/workflows/Node.js%20CI/badge.svg)
6
-
7
- ## 「なでしこ3」とは
8
-
9
- 「なでしこ3」とは、日本語のプログラミング言語です。HTML5/JavaScriptをベースとしているので、PC/スマホ/タブレットなど、さまざまな環境で動作させることができます。
10
-
11
- 日本語プログラミング言語は、読みやすく理解しやすいのが特徴で、初めてでも楽しくプログラミングを覚えることができます。また、バッチ処理や定型処理などを手軽に記述できます。
12
-
13
- - [なでしこのWebサイト](https://nadesi.com/top/)
14
- - [なでしこ3のWebサイト](https://nadesi.com/doc3/)
15
- - [なでしこ3(GitHub Pages)](https://kujirahand.github.io/nadesiko3/)
16
-
17
- ## 対応機器/ブラウザ
18
-
19
- 主要ブラウザ(Chrome/Safari/Edge/Firefox)に対応しています。詳しくは、[対応機器/ブラウザ](doc/browsers.md) をご覧ください。
20
-
21
- ## ブラウザで利用する場合
22
-
23
- 以下、Webエディタ上で、なでしこを実行できます。
24
-
25
- - [なでしこ3簡易エディタ](https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E7%B0%A1%E6%98%93%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF)
26
- - [なでしこ3貯蔵庫(プログラム一覧)](https://n3s.nadesi.com/)
27
- - [なでしこエディタの一覧](https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%81%AE%E4%B8%80%E8%A6%A7)
28
-
29
- ## 各OSごとに利用する方法
30
-
31
- なでしこ3をPC向けにローカル環境で動作させることも可能です。
32
-
33
- - [OS別のインストール方法](https://nadesi.com/doc3/index.php?OS%E5%88%A5)
34
-
35
- 外部リポジトリに個別の配布パッケージを用意しています(ただし、最新版とは限りません)
36
-
37
- - [なでしこ3配布キット(webkit版)](https://github.com/kujirahand/nadesiko3webkit)
38
- - [なでしこ3配布キット(electron版)](https://github.com/kujirahand/nadesiko3electron)
39
- - [なでしこ3(コンソール版)のWindows配布パッケージ](https://github.com/kujirahand/nadesiko3win32/releases)
40
-
41
- ## その他のなでしこ3について
42
-
43
- 実験的な意味合いもありますが、各プログラミング言語で実装したなでしこ3があります。なでしこ3PHPでは掲示板、チャットなど、それなりに実用的なプログラムも作れます。
44
-
45
- - [なでしこ3PHP](https://github.com/kujirahand/nadesiko3php)
46
- - [なでしこ3Rust](https://github.com/kujirahand/nadesiko3rust)
47
- - [なでしこ3Go言語](https://github.com/kujirahand/nadesiko3go)
48
-
49
- ## npm でなでしこ3コマンドライン版をインストール
50
-
51
- 先にNode.jsをインストールします。
52
- 次いで、コマンドラインから以下のコマンドを実行します。
53
-
54
- ```bash
55
- npm install -g nadesiko3
56
- ```
57
-
58
- すると、cnako3というコマンドで、なでしこを利用できます。
59
-
60
- ```bash
61
- # なでしこのサーバーを起動
62
- npm start
63
- # なでしこエディタ(PC版)を起動
64
- npm run nako3edit
65
- # なでしこエディタ(WEB版)を起動
66
- npm run nako3server
67
- ```
68
-
69
- ## Gitからインストール
70
-
71
- また、以下のコマンドを実行すると、ブラウザ上になでしこの簡易エディタが起動します。
72
-
73
- ```bash
74
- git clone https://github.com/kujirahand/nadesiko3.git
75
- cd nadesiko3
76
- npm install
77
- ```
78
-
79
- ## 追加インストール(macOS/Linux)
80
-
81
- 必要に応じて以下のコマンドをインストールします。
82
-
83
- macOS:
84
-
85
- ```bash
86
- # 『圧縮』『解凍』命令のために
87
- brew install p7zip
88
- ```
89
-
90
- Ubuntu/Debian:
91
-
92
- ```bash
93
- # 『圧縮』『解凍』命令のために
94
- sudo apt install p7zip-full
95
- # 『キー送信』命令のために
96
- sudo apt install xdotool
97
- ```
98
-
99
- 全てのコマンドが正しく動くかを確認するには、以下のコマンドを実行します。
100
-
101
- ```bash
102
- npm test
103
- npm run test:all
104
- ```
105
-
106
- ## なでしこ3の開発に参加する
107
-
108
- なでしこ3自身を開発するために、開発環境を整えようという方は、 [doc/SETUP.md](doc/SETUP.md) をご覧ください。
109
- また、なでしこ3開発者向けの[Gitter](https://gitter.im/nadesiko3/community)への参加も可能です。
1
+ # 日本語プログラミング言語「なでしこ3」
2
+
3
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
4
+ [![npm version](https://badge.fury.io/js/nadesiko3.svg)](https://www.npmjs.com/package/nadesiko3)
5
+ ![Node.js CI](https://github.com/kujirahand/nadesiko3/workflows/Node.js%20CI/badge.svg)
6
+
7
+ ## 「なでしこ3」とは
8
+
9
+ 「なでしこ3」とは、日本語のプログラミング言語です。HTML5/JavaScriptをベースとしているので、PC/スマホ/タブレットなど、さまざまな環境で動作させることができます。
10
+
11
+ 日本語プログラミング言語は、読みやすく理解しやすいのが特徴で、初めてでも楽しくプログラミングを覚えることができます。また、バッチ処理や定型処理などを手軽に記述できます。
12
+
13
+ - [なでしこのWebサイト](https://nadesi.com/top/)
14
+ - [なでしこ3のWebサイト](https://nadesi.com/doc3/)
15
+ - [なでしこ3(GitHub Pages)](https://kujirahand.github.io/nadesiko3/)
16
+
17
+ ## 対応機器/ブラウザ
18
+
19
+ 主要ブラウザ(Chrome/Safari/Edge/Firefox)に対応しています。詳しくは、[対応機器/ブラウザ](doc/browsers.md) をご覧ください。
20
+
21
+ ## ブラウザで利用する場合
22
+
23
+ 以下、Webエディタ上で、なでしこを実行できます。
24
+
25
+ - [なでしこ3簡易エディタ](https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E7%B0%A1%E6%98%93%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF)
26
+ - [なでしこ3貯蔵庫(プログラム一覧)](https://n3s.nadesi.com/)
27
+ - [なでしこエディタの一覧](https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%81%AE%E4%B8%80%E8%A6%A7)
28
+
29
+ ## 各OSごとに利用する方法
30
+
31
+ なでしこ3をPC向けにローカル環境で動作させることも可能です。
32
+
33
+ - [OS別のインストール方法](https://nadesi.com/doc3/index.php?OS%E5%88%A5)
34
+
35
+ 外部リポジトリに個別の配布パッケージを用意しています(ただし、最新版とは限りません)
36
+
37
+ - [なでしこ3配布キット(webkit版)](https://github.com/kujirahand/nadesiko3webkit)
38
+ - [なでしこ3配布キット(electron版)](https://github.com/kujirahand/nadesiko3electron)
39
+ - [なでしこ3(コンソール版)のWindows配布パッケージ](https://github.com/kujirahand/nadesiko3win32/releases)
40
+
41
+ ## その他のなでしこ3について
42
+
43
+ 実験的な意味合いもありますが、各プログラミング言語で実装したなでしこ3があります。なでしこ3PHPでは掲示板、チャットなど、それなりに実用的なプログラムも作れます。
44
+
45
+ - [なでしこ3PHP](https://github.com/kujirahand/nadesiko3php)
46
+ - [なでしこ3Rust](https://github.com/kujirahand/nadesiko3rust)
47
+ - [なでしこ3Go言語](https://github.com/kujirahand/nadesiko3go)
48
+
49
+ ## npm でなでしこ3コマンドライン版をインストール
50
+
51
+ 先にNode.jsをインストールします。
52
+ 次いで、コマンドラインから以下のコマンドを実行します。
53
+
54
+ ```bash
55
+ npm install -g nadesiko3
56
+ ```
57
+
58
+ すると、cnako3というコマンドで、なでしこを利用できます。
59
+
60
+ ```bash
61
+ # なでしこのサーバーを起動
62
+ npm start
63
+ # なでしこエディタ(PC版)を起動
64
+ npm run nako3edit
65
+ # なでしこエディタ(WEB版)を起動
66
+ npm run nako3server
67
+ ```
68
+
69
+ ## Gitからインストール
70
+
71
+ また、以下のコマンドを実行すると、ブラウザ上になでしこの簡易エディタが起動します。
72
+
73
+ ```bash
74
+ git clone https://github.com/kujirahand/nadesiko3.git
75
+ cd nadesiko3
76
+ npm install
77
+ ```
78
+
79
+ ## 追加インストール(macOS/Linux)
80
+
81
+ 必要に応じて以下のコマンドをインストールします。
82
+
83
+ macOS:
84
+
85
+ ```bash
86
+ # 『圧縮』『解凍』命令のために
87
+ brew install p7zip
88
+ ```
89
+
90
+ Ubuntu/Debian:
91
+
92
+ ```bash
93
+ # 『圧縮』『解凍』命令のために
94
+ sudo apt install p7zip-full
95
+ # 『キー送信』命令のために
96
+ sudo apt install xdotool
97
+ ```
98
+
99
+ 全てのコマンドが正しく動くかを確認するには、以下のコマンドを実行します。
100
+
101
+ ```bash
102
+ npm test
103
+ npm run test:all
104
+ ```
105
+
106
+ ## なでしこの開発履歴
107
+
108
+ 「なでしこ3」の開発は2017年に始まり、以後コツコツとバージョンアップを続けています。「誰でも簡単プログラマー」の目標を実現するために、これからも頑張ります。
109
+
110
+ - 2022-04-20 v3.3.2を公開(モジュール構造をCommonJS→ESModuleへ変更/asyncFnの実装)
111
+ - 2021-04-09 v3.2.1を公開
112
+ - 2020-04-24 v3.1.2を公開
113
+ - 2017-12-29 v3.0.19を公開(無名関数の「には」構文の実装など)
114
+ - 2017-06-25 内部構造を大幅に修正(PEGパーサーから独自のパーサーに変更)
115
+ - 2017-02-13 なでしこ3のプロジェクトが開始
116
+ - 2004-08-01 ひまわり2としてゼロからなでしこv1の開発が開始
117
+
118
+ ## なでしこ3の開発に参加する
119
+
120
+ なでしこ3自身を開発するために、開発環境を整えようという方は、 [doc/SETUP.md](doc/SETUP.md) をご覧ください。
121
+ また、なでしこ3開発者向けの[Gitter](https://gitter.im/nadesiko3/community)への参加も可能です。
@@ -1,3 +1,3 @@
1
- # 対応機器/ブラウザ
2
-
3
- {embed browser}
1
+ # 対応機器/ブラウザ
2
+
3
+ {embed browser}
@@ -1,72 +1,72 @@
1
- #-------------------------------------------------
2
- # ブラウザ対応表を作成
3
- #-------------------------------------------------
4
- # 入力: src/browsers.txt
5
- # 出力:
6
- # - src/browsers.json (plugin_caniuse.jsで利用)
7
- # - doc/browsers.md
8
- # - demo/browsers.html
9
- #-------------------------------------------------
10
- # 【注意】
11
- # このプログラムを実行する前に以下のコマンドを実行してください。
12
- # $ npx browserslist > src/browsers.txt
13
- # あるいは直接これを実行するのではなく以下のコマンドを実行します。
14
- # $ npm run build:browsers を実行してください。
15
- #-------------------------------------------------
16
- !「../src/plugin_markup.mjs」を取り込む
17
- !「../src/plugin_caniuse.mjs」を取り込む
18
- #-------------------------------------------------
19
- # src/browsers.jsonを作成
20
- 基本パス=母艦パスを「../」で相対パス展開。
21
- リストファイル=「{基本パス}/src/browsers.txt」
22
- 対応表={}
23
- リストファイルを開く。
24
- 改行で区切って反復
25
-   トリム。もし、それが空ならば続ける。
26
-   変数[ブラウザ,バージョン] = (対象を「 」で区切る)。
27
-   もし(対応表にブラウザが辞書キー存在)でなければ
28
-     対応表@ブラウザ=[]
29
-     #ブラウザを表示。
30
-   ここまで。
31
-   対応表@ブラウザにバージョンを配列追加。
32
- ここまで。
33
- 対応表をJSONエンコードしてJSに代入。
34
- 「export default {JS}」を「{基本パス}/src/browsers.mjs」へ保存。
35
-
36
- #-------------------------------------------------
37
- # doc/browsers.mjsを作成
38
- MD="# なでしこ3 対応ブラウザ一覧"&改行&改行
39
- MD=MD&"日本語プログラミング言語「なでしこ3」は以下のブラウザに対応しています。"&改行&改行
40
- ブラウザ名変換表@"node"="Node.js"
41
- TYPES={
42
- "デスクトップ":["ie","edge","firefox","chrome","safari","opera","node"],
43
- "モバイル":["ios_saf","op_mini","android","bb","op_mob","and_chr","and_ff","ie_mob","and_uc","samsung","and_qq","baidu","kaios"]
44
- }
45
- TYPESを反復
46
-   タイプ=対象キー。
47
-   ブラウザ一覧=対象。
48
-   MD=MD&"## {タイプ}"&改行&改行。
49
-   ブラウザ一覧を反復
50
-     ブラウザ=対象。
51
-     ブラウザ名=ブラウザ名変換表@ブラウザ。
52
-     対応バージョン=対応表@ブラウザ。
53
-     もし、対応バージョン=未定義ならば、続ける。
54
-     VER=対応バージョンを「/」で配列結合。
55
-     MD=MD&"- {ブラウザ名} ({VER}以上)"&改行
56
-   ここまで。
57
-   MD=MD&改行;
58
- ここまで
59
- MD=トリム(MD)&改行。# 必ず末尾の改行は1つだけに
60
- MDを「{基本パス}/doc/browsers.md」へ保存。
61
- MDを表示。
62
- #-------------------------------------------------
63
- # demo/browsers.html
64
- MDをマークダウンHTML変換してHTML整形してHTMLに代入。
65
- 「<html><head>
66
- <title>対応ブラウザ - なでしこ3</title>
67
- </head><body>
68
- {HTML}
69
- </body></html>」を「{基本パス}/demo/browsers.html」に保存
70
- #-------------------------------------------------
71
- 「ok」と表示。
72
-
1
+ #-------------------------------------------------
2
+ # ブラウザ対応表を作成
3
+ #-------------------------------------------------
4
+ # 入力: src/browsers.txt
5
+ # 出力:
6
+ # - src/browsers.json (plugin_caniuse.jsで利用)
7
+ # - doc/browsers.md
8
+ # - demo/browsers.html
9
+ #-------------------------------------------------
10
+ # 【注意】
11
+ # このプログラムを実行する前に以下のコマンドを実行してください。
12
+ # $ npx browserslist > src/browsers.txt
13
+ # あるいは直接これを実行するのではなく以下のコマンドを実行します。
14
+ # $ npm run build:browsers を実行してください。
15
+ #-------------------------------------------------
16
+ !「../src/plugin_markup.mjs」を取り込む
17
+ !「../src/plugin_caniuse.mjs」を取り込む
18
+ #-------------------------------------------------
19
+ # src/browsers.jsonを作成
20
+ 基本パス=母艦パスを「../」で相対パス展開。
21
+ リストファイル=「{基本パス}/src/browsers.txt」
22
+ 対応表={}
23
+ リストファイルを開く。
24
+ 改行で区切って反復
25
+   トリム。もし、それが空ならば続ける。
26
+   変数[ブラウザ,バージョン] = (対象を「 」で区切る)。
27
+   もし(対応表にブラウザが辞書キー存在)でなければ
28
+     対応表@ブラウザ=[]
29
+     #ブラウザを表示。
30
+   ここまで。
31
+   対応表@ブラウザにバージョンを配列追加。
32
+ ここまで。
33
+ 対応表をJSONエンコードしてJSに代入。
34
+ 「export default {JS}」を「{基本パス}/src/browsers.mjs」へ保存。
35
+
36
+ #-------------------------------------------------
37
+ # doc/browsers.mjsを作成
38
+ MD="# なでしこ3 対応ブラウザ一覧"&改行&改行
39
+ MD=MD&"日本語プログラミング言語「なでしこ3」は以下のブラウザに対応しています。"&改行&改行
40
+ ブラウザ名変換表@"node"="Node.js"
41
+ TYPES={
42
+ "デスクトップ":["ie","edge","firefox","chrome","safari","opera","node"],
43
+ "モバイル":["ios_saf","op_mini","android","bb","op_mob","and_chr","and_ff","ie_mob","and_uc","samsung","and_qq","baidu","kaios"]
44
+ }
45
+ TYPESを反復
46
+   タイプ=対象キー。
47
+   ブラウザ一覧=対象。
48
+   MD=MD&"## {タイプ}"&改行&改行。
49
+   ブラウザ一覧を反復
50
+     ブラウザ=対象。
51
+     ブラウザ名=ブラウザ名変換表@ブラウザ。
52
+     対応バージョン=対応表@ブラウザ。
53
+     もし、対応バージョン=未定義ならば、続ける。
54
+     VER=対応バージョンを「/」で配列結合。
55
+     MD=MD&"- {ブラウザ名} ({VER}以上)"&改行
56
+   ここまで。
57
+   MD=MD&改行;
58
+ ここまで
59
+ MD=トリム(MD)&改行。# 必ず末尾の改行は1つだけに
60
+ MDを「{基本パス}/doc/browsers.md」へ保存。
61
+ MDを表示。
62
+ #-------------------------------------------------
63
+ # demo/browsers.html
64
+ MDをマークダウンHTML変換してHTML整形してHTMLに代入。
65
+ 「<html><head>
66
+ <title>対応ブラウザ - なでしこ3</title>
67
+ </head><body>
68
+ {HTML}
69
+ </body></html>」を「{基本パス}/demo/browsers.html」に保存
70
+ #-------------------------------------------------
71
+ 「ok」と表示。
72
+
@@ -1,44 +1,44 @@
1
- #-------------------------------------------------
2
- # なでしこのソースコードから命令一覧を生成する
3
- #-------------------------------------------------
4
- # 入力: src/plugin_xxx.js
5
- # 出力: command.txt / command.json を生成
6
- #-------------------------------------------------
7
- # 実際の処理は個々のスクリプトにて
8
-
9
- 基本パス=母艦パスを「../」で相対パス展開。
10
-
11
- 「{基本パス}/release」のフォルダ作成
12
-
13
- # バッチを実行
14
- 基本パスを表示。
15
- # 命令一覧をピックアップして必要な形式に変換
16
- 「{基本パス}/batch/pickup_command.nako3」をCNAKO実行。
17
- 「{基本パス}/batch/cmd_txt2json.nako3」をCNAKO実行。
18
- # JSファイルのハッシュを計算
19
- 「{基本パス}/batch/calc_hash」をCNAKO実行。
20
- # 助詞一覧、予約語一覧を生成
21
- 助詞一覧取得してJSONエンコード整形してSに代入。
22
- 「{基本パス}/release/josi.json」にSを保存。
23
- 予約語一覧取得してJSONエンコード整形してSに代入。
24
- 「{基本パス}/release/yoyakugo.json」にSを保存。
25
-
26
- # Windows版のnakopad用ファイルを生成してファイルをコピー
27
- 「{基本パス}/batch/gen_command_nakopad.nako3」をCNAKO実行。
28
- 「{基本パス}/batch/command_nakopad.txt」から「{基本パス}/installer/nako3-win32-template/bin/tools/command.txt」へファイルコピー。
29
-
30
- ●CNAKO実行(Cを)
31
- CMD=「node {基本パス}/src/cnako3.mjs {C}」
32
- Cを表示。
33
- S=CMDを起動待機。
34
- 成功フラグ=はい。
35
- # エラーなら処理を打ち切るように。
36
- Sで「[エラー]」が何文字目か
37
- もし、それ>0ならば、いいえを成功フラグに代入。
38
- Sで「[警告]」が何文字目か
39
- もし、それ>0ならば、いいえを成功フラグに代入。
40
- もし、成功フラグ=いいえならば
41
-   「⚠︎⚠︎⚠︎[コマンド生成の失敗]: {S}」を表示
42
-   終わり。
43
- ここまで。
44
- ここまで。
1
+ #-------------------------------------------------
2
+ # なでしこのソースコードから命令一覧を生成する
3
+ #-------------------------------------------------
4
+ # 入力: src/plugin_xxx.js
5
+ # 出力: command.txt / command.json を生成
6
+ #-------------------------------------------------
7
+ # 実際の処理は個々のスクリプトにて
8
+
9
+ 基本パス=母艦パスを「../」で相対パス展開。
10
+
11
+ 「{基本パス}/release」のフォルダ作成
12
+
13
+ # バッチを実行
14
+ 基本パスを表示。
15
+ # 命令一覧をピックアップして必要な形式に変換
16
+ 「{基本パス}/batch/pickup_command.nako3」をCNAKO実行。
17
+ 「{基本パス}/batch/cmd_txt2json.nako3」をCNAKO実行。
18
+ # JSファイルのハッシュを計算
19
+ 「{基本パス}/batch/calc_hash」をCNAKO実行。
20
+ # 助詞一覧、予約語一覧を生成
21
+ 助詞一覧取得してJSONエンコード整形してSに代入。
22
+ 「{基本パス}/release/josi.json」にSを保存。
23
+ 予約語一覧取得してJSONエンコード整形してSに代入。
24
+ 「{基本パス}/release/yoyakugo.json」にSを保存。
25
+
26
+ # Windows版のnakopad用ファイルを生成してファイルをコピー
27
+ 「{基本パス}/batch/gen_command_nakopad.nako3」をCNAKO実行。
28
+ 「{基本パス}/batch/command_nakopad.txt」から「{基本パス}/installer/nako3-win32-template/bin/tools/command.txt」へファイルコピー。
29
+
30
+ ●CNAKO実行(Cを)
31
+ CMD=「node {基本パス}/src/cnako3.mjs {C}」
32
+ Cを表示。
33
+ S=CMDを起動待機。
34
+ 成功フラグ=はい。
35
+ # エラーなら処理を打ち切るように。
36
+ Sで「[エラー]」が何文字目か
37
+ もし、それ>0ならば、いいえを成功フラグに代入。
38
+ Sで「[警告]」が何文字目か
39
+ もし、それ>0ならば、いいえを成功フラグに代入。
40
+ もし、成功フラグ=いいえならば
41
+   「⚠︎⚠︎⚠︎[コマンド生成の失敗]: {S}」を表示
42
+   終わり。
43
+ ここまで。
44
+ ここまで。
@@ -1,14 +1,14 @@
1
- 母艦パス取得してパス抽出して基本パスに代入。
2
- 「{基本パス}/package.json」を読んでJSONデコードして、Pに代入。
3
- VER=P@"version"
4
- 定数[MAJOR,MINOR,PATCH]=(VERを「.」で区切る)
5
- VS=「// なでしこバージョン
6
- export default {波カッコ}
7
- version: '{VER}',
8
- major: {MAJOR},
9
- minor: {MINOR},
10
- patch: {PATCH}
11
- {波カッコ閉}
12
-
13
- VSを表示。
14
- VSを「{基本パス}/src/nako_version.mjs」へ保存。
1
+ 母艦パス取得してパス抽出して基本パスに代入。
2
+ 「{基本パス}/package.json」を読んでJSONデコードして、Pに代入。
3
+ VER=P@"version"
4
+ 定数[MAJOR,MINOR,PATCH]=(VERを「.」で区切る)
5
+ VS=「// なでしこバージョン
6
+ export default {波カッコ}
7
+ version: '{VER}',
8
+ major: {MAJOR},
9
+ minor: {MINOR},
10
+ patch: {PATCH}
11
+ {波カッコ閉}
12
+
13
+ VSを表示。
14
+ VSを「{基本パス}/src/nako_version.mjs」へ保存。
@@ -1,29 +1,29 @@
1
- # release/*.js のハッシュを求める
2
- ROOT_DIR=母艦パスを「../」で相対パス展開
3
- VER=ナデシコバージョン
4
- // aaaaa
5
- JSDEF=""
6
- JSHASH=""
7
-
8
- 「{ROOT_DIR}/release/*.js」を全ファイル列挙
9
- 反復
10
-   # 対象を表示。
11
-   F=対象のファイル名抽出。
12
-   S=対象を読む。
13
-   HASH=Sを「sha512」の「base64」でハッシュ値計算。
14
-   # HASHを表示。
15
-   HASH_MD5=Sを「md5」の「hex」でハッシュ値計算。
16
-   HASH_SHA256=Sを「sha256」の「base64」でハッシュ値計算。
17
-   HASH_SHA256HEX=Sを「sha256」の「hex」でハッシュ値計算。
18
-   HASH_SHA512=Sを「sha512」の「base64」でハッシュ値計算。
19
-   JSDEF=JSDEF&「<script defer src="https://nadesi.com/v3/cdn.php?v={VER}&f=release/{F}" integrity="sha512-{HASH}" crossorigin="anonymous"></script>」&改行
20
-   JSHASH=JSHASH&「{F}:
21
- md5(hex): {HASH_MD5}
22
- sha256(hex): {HASH_SHA256HEX}
23
- sha256(base64): {HASH_SHA256}
24
- sha512(base64): {HASH_SHA512}」&改行
25
- ここまで
26
-
27
- JSDEFを「{ROOT_DIR}/release/_script-tags.txt」に保存。
28
- JSHASHを「{ROOT_DIR}/release/_hash.txt」に保存。
29
-
1
+ # release/*.js のハッシュを求める
2
+ ROOT_DIR=母艦パスを「../」で相対パス展開
3
+ VER=ナデシコバージョン
4
+ // aaaaa
5
+ JSDEF=""
6
+ JSHASH=""
7
+
8
+ 「{ROOT_DIR}/release/*.js」を全ファイル列挙
9
+ 反復
10
+   # 対象を表示。
11
+   F=対象のファイル名抽出。
12
+   S=対象を読む。
13
+   HASH=Sを「sha512」の「base64」でハッシュ値計算。
14
+   # HASHを表示。
15
+   HASH_MD5=Sを「md5」の「hex」でハッシュ値計算。
16
+   HASH_SHA256=Sを「sha256」の「base64」でハッシュ値計算。
17
+   HASH_SHA256HEX=Sを「sha256」の「hex」でハッシュ値計算。
18
+   HASH_SHA512=Sを「sha512」の「base64」でハッシュ値計算。
19
+   JSDEF=JSDEF&「<script defer src="https://nadesi.com/v3/cdn.php?v={VER}&f=release/{F}" integrity="sha512-{HASH}" crossorigin="anonymous"></script>」&改行
20
+   JSHASH=JSHASH&「{F}:
21
+ md5(hex): {HASH_MD5}
22
+ sha256(hex): {HASH_SHA256HEX}
23
+ sha256(base64): {HASH_SHA256}
24
+ sha512(base64): {HASH_SHA512}」&改行
25
+ ここまで
26
+
27
+ JSDEFを「{ROOT_DIR}/release/_script-tags.txt」に保存。
28
+ JSHASHを「{ROOT_DIR}/release/_hash.txt」に保存。
29
+