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
@@ -0,0 +1,199 @@
1
+ name: textlint CI
2
+
3
+ # pull_requestで何かあった時に起動する
4
+ on:
5
+ pull_request:
6
+
7
+ jobs:
8
+ # textlintをかけ、結果をPRにコメントとして表示する。
9
+ lint:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ node-version: [ 16.x ]
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ with:
18
+ fetch-depth: 0
19
+ - name: Use Node.js ${{ matrix.node-version }}
20
+ uses: actions/setup-node@v1.4.4
21
+ with:
22
+ node-version: ${{ matrix.node-version }}
23
+ - name: Install dependencies
24
+ run: |
25
+ yarn install -D
26
+ # lintする
27
+ - name: Lint files
28
+ id: lint
29
+ run: |
30
+ result="$(yarn run textlint 2>&1)" || true
31
+ echo "$result"
32
+ result="${result//'%'/'%25'}"
33
+ result="${result//$'\n'/'%0A'}"
34
+ result="${result//$'\r'/'%0D'}"
35
+ echo "::set-output name=result::$result"
36
+ true
37
+ continue-on-error: true
38
+ # lint結果をコメントに残す
39
+ - name: Lint Comment
40
+ if: github.event.pull_request.head.repo.full_name == github.repository && steps.lint.outputs.result != ''
41
+ uses: actions/github-script@v3
42
+ with:
43
+ github-token: ${{secrets.GITHUB_TOKEN}}
44
+ script: |
45
+ const issues_listComments_params = {
46
+ issue_number: context.issue.number,
47
+ owner: context.repo.owner,
48
+ repo: context.repo.repo
49
+ }
50
+ console.log("call issues.listComments:", issues_listComments_params)
51
+ const issue_comments = (await github.paginate(github.issues.listComments, issues_listComments_params)).filter(
52
+ issue_comment => issue_comment.user.id==41898282 && issue_comment.body.startsWith('日本語の')
53
+ )
54
+
55
+ for (const issue_comment of issue_comments) {
56
+ const issues_deleteComment_params = {
57
+ comment_id: issue_comment.id,
58
+ owner: context.repo.owner,
59
+ repo: context.repo.repo
60
+ }
61
+ console.log("call issues.deleteComment:", issues_deleteComment_params)
62
+ await github.issues.deleteComment(issues_deleteComment_params)
63
+ }
64
+
65
+ const result = `${{steps.lint.outputs.result}}`
66
+ const issues_createComment_params = {
67
+ issue_number: context.issue.number,
68
+ owner: context.repo.owner,
69
+ repo: context.repo.repo,
70
+ body: "日本語のLint結果\n```\n"+result+"\n```"
71
+ }
72
+ console.log("call issues.createComment:", issues_createComment_params)
73
+ await github.issues.createComment(issues_createComment_params)
74
+ - name: Exit
75
+ if: github.event.pull_request.head.repo.full_name != github.repository && steps.lint.outcome == 'failure'
76
+ run: exit 1
77
+
78
+ # PRが来たらtextlintをかけてみて、差分があればPRを作って、エラーで落ちるjob
79
+ format:
80
+ runs-on: ubuntu-latest
81
+ if: github.event.pull_request.head.repo.full_name == github.repository
82
+ strategy:
83
+ matrix:
84
+ node-version: [ 16.x ]
85
+
86
+ steps:
87
+ - uses: actions/checkout@v2
88
+ with:
89
+ fetch-depth: 0
90
+ - name: Use Node.js ${{ matrix.node-version }}
91
+ uses: actions/setup-node@v1.4.4
92
+ with:
93
+ node-version: ${{ matrix.node-version }}
94
+ - name: Install dependencies
95
+ run: |
96
+ yarn install -D
97
+ # textlintでformatする
98
+ - name: Format files
99
+ id: format
100
+ run: |
101
+ yarn run textlint:fix
102
+ continue-on-error: true
103
+ # 差分があったときは差分を出力する
104
+ - name: Show diff
105
+ id: show_diff
106
+ run: |
107
+ echo "::set-output name=diff::$(git diff)"
108
+ # 差分があったときは、コミットを作りpushする
109
+ - name: Push
110
+ if: steps.show_diff.outputs.diff != ''
111
+ run: |
112
+ git config user.name "textlint CI"
113
+ git config user.email "textlint_ci@example.com"
114
+ git add -u
115
+ git commit -m "日本語修正"
116
+ git push -f https://${{github.actor}}:${{secrets.GITHUB_TOKEN}}@github.com/${{github.repository}}.git HEAD:refs/heads/fix-text-${{github.event.pull_request.head.ref}}
117
+ - name: Get PullRequests
118
+ uses: actions/github-script@v3
119
+ if: steps.show_diff.outputs.diff != ''
120
+ id: get_pull_requests
121
+ with:
122
+ github-token: ${{secrets.GITHUB_TOKEN}}
123
+ script: |
124
+ const pulls_list_params = {
125
+ owner: context.repo.owner,
126
+ repo: context.repo.repo,
127
+ head: "kujirahand:fix-text-${{github.event.pull_request.head.ref}}",
128
+ base: "${{github.event.pull_request.head.ref}}",
129
+ state: "open"
130
+ }
131
+ console.log("call pulls.list:", pulls_list_params)
132
+ const pulls = await github.paginate(github.pulls.list, pulls_list_params)
133
+ return pulls.length
134
+ # pushしたブランチでPRを作る
135
+ - name: Create PullRequest
136
+ uses: actions/github-script@v3
137
+ if: steps.show_diff.outputs.diff != '' && steps.get_pull_requests.outputs.result == 0
138
+ with:
139
+ github-token: ${{secrets.GITHUB_TOKEN}}
140
+ script: |
141
+ const common_params = {
142
+ owner: context.repo.owner,
143
+ repo: context.repo.repo
144
+ }
145
+ const pulls_create_params = {
146
+ head: "kujirahand:fix-text-${{github.event.pull_request.head.ref}}",
147
+ base: "${{github.event.pull_request.head.ref}}",
148
+ title: "日本語修正 (修正する場合はPRをマージしてください) #${{github.event.pull_request.number}}",
149
+ body: "日本語を修正しました。本PRをマージすると #${{github.event.pull_request.number}} に修正が適用されます。",
150
+ ...common_params
151
+ }
152
+ console.log("call pulls.create:", pulls_create_params)
153
+ const create_pull_res = (await github.pulls.create(pulls_create_params)).data
154
+ const issues_add_assignees_params = {
155
+ issue_number: create_pull_res.number,
156
+ assignees: ["${{github.event.pull_request.user.login}}"],
157
+ ...common_params
158
+ }
159
+ console.log("call issues.addAssignees:", issues_add_assignees_params)
160
+ await github.issues.addAssignees(issues_add_assignees_params)
161
+ # 既にformat修正のPRがある状態で、手動でformatを修正した場合、format修正のPRを閉じる
162
+ - name: Close PullRequest
163
+ uses: actions/github-script@v3
164
+ if: steps.show_diff.outputs.diff == ''
165
+ with:
166
+ github-token: ${{secrets.GITHUB_TOKEN}}
167
+ script: |
168
+ const head_name = "fix-text-${{github.event.pull_request.head.ref}}"
169
+ const common_params = {
170
+ owner: context.repo.owner,
171
+ repo: context.repo.repo
172
+ }
173
+ const pulls_list_params = {
174
+ head: "kujirahand:" + head_name,
175
+ base: "${{github.event.pull_request.head.ref}}",
176
+ state: "open",
177
+ ...common_params
178
+ }
179
+ console.log("call pulls.list:", pulls_list_params)
180
+ const pulls = await github.paginate(github.pulls.list,pulls_list_params)
181
+
182
+ for (const pull of pulls) {
183
+ const pulls_update_params = {
184
+ pull_number: pull.number,
185
+ state: "closed",
186
+ ...common_params
187
+ }
188
+ console.log("call pulls.update:", pulls_update_params)
189
+ await github.pulls.update(pulls_update_params)
190
+ const git_deleteRef_params = {
191
+ ref: "heads/" + head_name,
192
+ ...common_params
193
+ }
194
+ console.log("call git.deleteRef:", git_deleteRef_params)
195
+ await github.git.deleteRef(git_deleteRef_params)
196
+ }
197
+ - name: Exit
198
+ if: steps.show_diff.outputs.diff != ''
199
+ run: exit 1
package/core/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 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/core/README.md ADDED
@@ -0,0 +1,66 @@
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/nadesiko3core.svg)](https://www.npmjs.com/package/nadesiko3core)
5
+
6
+ ## 「なでしこ3」とは
7
+
8
+ 「なでしこ3」とは、日本語のプログラミング言語です。HTML5/JavaScript(TypeScript)をベースとしているので、PC/スマホ/タブレットなど、さまざまな環境で動作させることができます。日本語プログラミング言語は、読みやすく理解しやすいのが特徴で、初めてでも楽しくプログラミングを覚えることができます。
9
+
10
+ - [なでしこ3開発リポジトリ - nadesiko3](https://github.com/kujirahand/nadesiko3)
11
+ - [なでしこのWebサイト](https://nadesi.com/top/)
12
+
13
+ ## 本リポジトリについて
14
+
15
+ 本リポジトリは、なでしこ3の言語エンジンのみを取り出したものです。最小限の構成となっています。
16
+ 言語機能と最小限のプラグインのみを備えています。
17
+
18
+ - [なでしこの基本文法(外部サイト)](https://nadesi.com/v3/doc/index.php?%E6%96%87%E6%B3%95)
19
+
20
+ 最小限のプラグイン構成
21
+
22
+ - [plugin_system](./src/plugin_system.mts) --- 言語機能の補助など基本的な関数群
23
+ - [plugin_math](./src/plugin_math.mts) --- 数学関数群
24
+ - [plugin_csv](./src/plugin_csv.mts)--- CSV処理のための関数群
25
+ - [plugin_promise](./src/plugin_promise.mts) --- プロミス機能を実現するための関数群
26
+ - [plugin_test](./src/plugin_test.mts) --- テストを記述するための関数群
27
+
28
+ # 本ライブラリの使い方
29
+
30
+ 例えば、`npm install nadesiko3core`でなでしこ3言語エンジンをインストールしたら、以下のプログラムを記述します。
31
+ `hoge.mjs`という名前で保存します。そして、以下のようなプログラムを記述します。
32
+
33
+ ```js
34
+ import core from 'nadesiko3core'
35
+ const com = new core.NakoCompiler()
36
+ const g = com.run('1 + 2 * 3を表示') // ← ここになでしこのプログラム
37
+ console.log(g.log) // ← 「表示」した内容がlogに入っている
38
+ ```
39
+
40
+ プログラムを実行するには、`node hoge.mjs`と記述すれば実行できます。
41
+
42
+ ## コマンドラインから実行したい場合
43
+
44
+ コマンドラインからなでしこのプログラムを実行したい場合には、[nadesiko3](https://github.com/kujirahand/nadesiko3)リポジトリを利用してください。nadesiko3リポジトリには、コマンドライン版のなでしこ(cnako3)が含まれています。
45
+
46
+ なお、本リポジトリにも、[簡易版のコマンドラインツール(snako)](/command/snako.mts)を収録しています。以下は簡単な使い方です。
47
+
48
+ ```
49
+ # ファイル sample/hello.nako3 を実行
50
+ $ node command/snako.mjs sample/hello.nako3
51
+
52
+ # その場でコードを実行
53
+ $ node command/snako.mjs -e "1+2を表示"
54
+ ```
55
+
56
+ ### 簡易コマンドラインをグローバルインストールして使う場合
57
+
58
+ 簡易コマンドライン(snako)を手軽に利用したい場合は、次のように実行します。
59
+
60
+ ```
61
+ $ npm install -g nadesiko3core
62
+ $ snako -e "1+2を表示"
63
+ $ snako nadesiko3core/sample/hello.nako3
64
+ ```
65
+
66
+
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env cnako3
2
+ # -----------------------------------------------------
3
+ # なでしこのバージョン情報を自動生成する
4
+ # -----------------------------------------------------
5
+ # ●説明
6
+ # package.json の内容を読んで ./src/nako_core_version.mts を生成
7
+ # -----------------------------------------------------
8
+ 母艦パス取得してパス抽出して基本パスに代入。
9
+ 「{基本パス}/package.json」を読んでJSONデコードして、Pに代入。
10
+ VER=P@"version"
11
+ 定数[MAJOR,MINOR,PATCH]=(VERを「.」で区切る)
12
+ QS=『{』
13
+ QE=『}』
14
+ VS=「/**
15
+ * なでしこのバージョン情報
16
+ * package.json から自動的に作成されます。このファイルを編集しないでください。
17
+ */
18
+ // 型定義
19
+ export interface NakoCoreVersion {QS}
20
+ version: string;
21
+ major: number;
22
+ minor: number;
23
+ patch: number;
24
+ {QE}
25
+ // 実際のバージョン定義 (自動生成されるので以下を編集しない)
26
+ const coreVersion: NakoCoreVersion = {QS}
27
+ version: '{VER}',
28
+ major: {MAJOR},
29
+ minor: {MINOR},
30
+ patch: {PATCH}
31
+ {QE}
32
+ export default coreVersion
33
+
34
+ 保存先=「{基本パス}/src/nako_core_version.mts」
35
+ VSを保存先へ保存。
36
+
37
+ # ---------------------------------------------
38
+ # ● なでしこのバージョン情報を更新しました。
39
+ # version {VER}
40
+ # file: {保存先}
41
+ # ---------------------------------------------
42
+ 」を表示。
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import com from '../index.mjs';
5
+ import * as url from 'url';
6
+ import { NakoGenOptions } from '../src/nako_gen.mjs';
7
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
8
+ /** コマンドラインオプション */
9
+ class CommandOptions {
10
+ constructor() {
11
+ this.nodePath = '';
12
+ this.scriptPath = '';
13
+ this.filename = '';
14
+ this.evalStr = '';
15
+ this.isDebug = false;
16
+ this.flagConvert = false;
17
+ }
18
+ }
19
+ /** メイン処理 */
20
+ function main(argvOrg) {
21
+ // コマンドラインオプションを確認
22
+ const argv = [...argvOrg];
23
+ const opt = new CommandOptions();
24
+ opt.nodePath = argv.shift() || '';
25
+ opt.scriptPath = argv.shift() || '';
26
+ while (argv.length > 0) {
27
+ const arg = argv.shift() || '';
28
+ if (arg === '-d' || arg === '--debug') {
29
+ opt.isDebug = true;
30
+ continue;
31
+ }
32
+ if (arg === '-e' || arg === '--eval') {
33
+ opt.evalStr = argv.shift() || '';
34
+ continue;
35
+ }
36
+ if (arg === '-c' || arg === '--convert') {
37
+ opt.flagConvert = true;
38
+ continue;
39
+ }
40
+ if (opt.filename === '') {
41
+ opt.filename = arg;
42
+ }
43
+ }
44
+ // なでしこのコンパイラを生成
45
+ const nako = new com.NakoCompiler();
46
+ // 実行前にイベントを挟みたいとき
47
+ nako.addListener('beforeRun', (g) => {
48
+ g.__varslist[0]['ナデシコ種類'] = 'snako';
49
+ });
50
+ // logger を設定 --- リスナーを登録することでデバッグレベルを指定
51
+ const logger = nako.getLogger();
52
+ if (opt.isDebug) {
53
+ logger.addListener('trace', (data) => {
54
+ console.log(data.nodeConsole);
55
+ });
56
+ }
57
+ logger.addListener('stdout', (data) => {
58
+ console.log(data.noColor);
59
+ });
60
+ // -e オプションを実行したとき
61
+ if (opt.evalStr) {
62
+ nako.run(opt.evalStr);
63
+ return;
64
+ }
65
+ // パラメータが空だったとき
66
+ if (opt.filename === '') {
67
+ showHelp();
68
+ return;
69
+ }
70
+ // ソースコードをファイルから読み込む
71
+ const code = fs.readFileSync(opt.filename, 'utf-8');
72
+ // -c オプションが指定されたとき
73
+ if (opt.flagConvert) {
74
+ convert(nako, code, opt);
75
+ }
76
+ // 実行
77
+ nako.run(code, opt.filename);
78
+ }
79
+ // -c オプションを指定したとき
80
+ function convert(nako, code, opt) {
81
+ // オプションを指定
82
+ const genOpt = new NakoGenOptions(false, ['nako_errors.mjs', 'nako_core_version.mjs', 'plugin_system.mjs'], 'self.__varslist[0][\'ナデシコ種類\'] = \'snako\'');
83
+ // スタンドアロンコードを生成
84
+ const js = nako.compileStandalone(code, opt.filename, genOpt);
85
+ const jsFilename = opt.filename + '.js';
86
+ fs.writeFileSync(jsFilename, js, { encoding: 'utf-8' });
87
+ // 必要なライブラリをコピー
88
+ const runtimeDir = path.join(path.dirname(jsFilename), 'nako3runtime');
89
+ const srcDir = path.join(__dirname, '..', 'src');
90
+ if (!fs.existsSync(runtimeDir)) {
91
+ fs.mkdirSync(runtimeDir);
92
+ }
93
+ for (const f of genOpt.importFiles) {
94
+ fs.copyFileSync(path.join(srcDir, f), path.join(runtimeDir, f));
95
+ }
96
+ }
97
+ /** 使い方を表示 */
98
+ function showHelp() {
99
+ console.log('●なでしこ(簡易版) # v.' + com.version.version);
100
+ console.log('[使い方] node snako.mjs [--debug|-d] (filename)');
101
+ console.log('[使い方] node snako.mjs [--eval|-e] (source)');
102
+ console.log('[使い方] node snako.mjs [-c] (source) ... convert');
103
+ }
104
+ /** メイン処理を実行 */
105
+ main(process.argv);
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'fs'
3
+ import path from 'path'
4
+ import com from '../index.mjs'
5
+ import { NakoGlobal } from '../src/nako_global.mjs'
6
+
7
+ import * as url from 'url'
8
+ import { NakoGenOptions } from '../src/nako_gen.mjs'
9
+ import { NakoCompiler } from '../src/nako3.mjs'
10
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
11
+
12
+ /** コマンドラインオプション */
13
+ class CommandOptions {
14
+ isDebug: boolean;
15
+ filename: string;
16
+ nodePath: string;
17
+ scriptPath: string;
18
+ evalStr: string;
19
+ flagConvert: boolean;
20
+ constructor () {
21
+ this.nodePath = ''
22
+ this.scriptPath = ''
23
+ this.filename = ''
24
+ this.evalStr = ''
25
+ this.isDebug = false
26
+ this.flagConvert = false
27
+ }
28
+ }
29
+
30
+ /** メイン処理 */
31
+ function main (argvOrg: string[]): void {
32
+ // コマンドラインオプションを確認
33
+ const argv: string[] = [...argvOrg]
34
+ const opt: CommandOptions = new CommandOptions()
35
+ opt.nodePath = argv.shift() || ''
36
+ opt.scriptPath = argv.shift() || ''
37
+ while (argv.length > 0) {
38
+ const arg = argv.shift() || ''
39
+ if (arg === '-d' || arg === '--debug') {
40
+ opt.isDebug = true
41
+ continue
42
+ }
43
+ if (arg === '-e' || arg === '--eval') {
44
+ opt.evalStr = argv.shift() || ''
45
+ continue
46
+ }
47
+ if (arg === '-c' || arg === '--convert') {
48
+ opt.flagConvert = true
49
+ continue
50
+ }
51
+ if (opt.filename === '') { opt.filename = arg }
52
+ }
53
+ // なでしこのコンパイラを生成
54
+ const nako = new com.NakoCompiler()
55
+ // 実行前にイベントを挟みたいとき
56
+ nako.addListener('beforeRun', (g: NakoGlobal) => {
57
+ g.__varslist[0]['ナデシコ種類'] = 'snako'
58
+ })
59
+ // logger を設定 --- リスナーを登録することでデバッグレベルを指定
60
+ const logger = nako.getLogger()
61
+ if (opt.isDebug) {
62
+ logger.addListener('trace', (data) => { // --debug オプションを指定したとき
63
+ console.log(data.nodeConsole)
64
+ })
65
+ }
66
+ logger.addListener('stdout', (data) => { // 「表示」命令を実行したとき
67
+ console.log(data.noColor)
68
+ })
69
+ // -e オプションを実行したとき
70
+ if (opt.evalStr) {
71
+ nako.run(opt.evalStr)
72
+ return
73
+ }
74
+ // パラメータが空だったとき
75
+ if (opt.filename === '') {
76
+ showHelp()
77
+ return
78
+ }
79
+ // ソースコードをファイルから読み込む
80
+ const code: string = fs.readFileSync(opt.filename, 'utf-8')
81
+ // -c オプションが指定されたとき
82
+ if (opt.flagConvert) { convert(nako, code, opt) }
83
+ // 実行
84
+ nako.run(code, opt.filename)
85
+ }
86
+
87
+ // -c オプションを指定したとき
88
+ function convert (nako: NakoCompiler, code: string, opt: CommandOptions): void {
89
+ // オプションを指定
90
+ const genOpt = new NakoGenOptions(
91
+ false,
92
+ ['nako_errors.mjs', 'nako_core_version.mjs', 'plugin_system.mjs'],
93
+ 'self.__varslist[0][\'ナデシコ種類\'] = \'snako\'')
94
+ // スタンドアロンコードを生成
95
+ const js = nako.compileStandalone(code, opt.filename, genOpt)
96
+ const jsFilename = opt.filename + '.js'
97
+ fs.writeFileSync(jsFilename, js, { encoding: 'utf-8' })
98
+ // 必要なライブラリをコピー
99
+ const runtimeDir = path.join(path.dirname(jsFilename), 'nako3runtime')
100
+ const srcDir = path.join(__dirname, '..', 'src')
101
+ if (!fs.existsSync(runtimeDir)) { fs.mkdirSync(runtimeDir) }
102
+ for (const f of genOpt.importFiles) {
103
+ fs.copyFileSync(path.join(srcDir, f), path.join(runtimeDir, f))
104
+ }
105
+ }
106
+
107
+ /** 使い方を表示 */
108
+ function showHelp (): void {
109
+ console.log('●なでしこ(簡易版) # v.' + com.version.version)
110
+ console.log('[使い方] node snako.mjs [--debug|-d] (filename)')
111
+ console.log('[使い方] node snako.mjs [--eval|-e] (source)')
112
+ console.log('[使い方] node snako.mjs [-c] (source) ... convert')
113
+ }
114
+
115
+ /** メイン処理を実行 */
116
+ main(process.argv)
package/core/index.mjs ADDED
@@ -0,0 +1,21 @@
1
+ import version from './src/nako_core_version.mjs';
2
+ import { NakoCompiler } from './src/nako3.mjs';
3
+ import { NakoLogger } from './src/nako_logger.mjs';
4
+ import { NakoError, NakoRuntimeError, NakoImportError } from './src/nako_errors.mjs';
5
+ import { NakoParser } from './src/nako_parser3.mjs';
6
+ import { NakoPrepare } from './src/nako_prepare.mjs';
7
+ export default {
8
+ // version
9
+ version,
10
+ // compiler
11
+ NakoCompiler,
12
+ // loggger
13
+ NakoLogger,
14
+ // error
15
+ NakoError,
16
+ NakoRuntimeError,
17
+ NakoImportError,
18
+ // tools etc..
19
+ NakoParser,
20
+ NakoPrepare
21
+ };
package/core/index.mts ADDED
@@ -0,0 +1,21 @@
1
+ import version from './src/nako_core_version.mjs'
2
+ import { NakoCompiler } from './src/nako3.mjs'
3
+ import { NakoLogger } from './src/nako_logger.mjs'
4
+ import { NakoError, NakoRuntimeError, NakoImportError } from './src/nako_errors.mjs'
5
+ import { NakoParser } from './src/nako_parser3.mjs'
6
+ import { NakoPrepare } from './src/nako_prepare.mjs'
7
+ export default {
8
+ // version
9
+ version,
10
+ // compiler
11
+ NakoCompiler,
12
+ // loggger
13
+ NakoLogger,
14
+ // error
15
+ NakoError,
16
+ NakoRuntimeError,
17
+ NakoImportError,
18
+ // tools etc..
19
+ NakoParser,
20
+ NakoPrepare
21
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "nadesiko3core",
3
+ "version": "3.3.47",
4
+ "description": "Japanese Programming Language Nadesiko v3 core",
5
+ "main": "index.mjs",
6
+ "type": "module",
7
+ "scripts": {
8
+ "test": "mocha ./test",
9
+ "tsc": "tsc --watch",
10
+ "build": "cnako3 batch/build_nako_version.nako3 && tsc",
11
+ "eslint": "eslint ./src/*.mts",
12
+ "eslint:fix": "eslint ./src/*.mts --fix"
13
+ },
14
+ "bin": {
15
+ "snako": "command/snako.mjs"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/kujirahand/nadesiko3core.git"
20
+ },
21
+ "keywords": [],
22
+ "author": "kujirahand",
23
+ "license": "MIT",
24
+ "bugs": {
25
+ "url": "https://github.com/kujirahand/nadesiko3core/issues"
26
+ },
27
+ "homepage": "https://github.com/kujirahand/nadesiko3core#readme",
28
+ "files": [
29
+ "src",
30
+ "batch",
31
+ "command",
32
+ "sample"
33
+ ],
34
+ "devDependencies": {
35
+ "@types/mocha": "^9.1.1",
36
+ "@types/node": "^17.0.35",
37
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
38
+ "chai": "^4.3.6",
39
+ "eslint": "^7.32.0",
40
+ "eslint-config-standard-with-typescript": "^21.0.1",
41
+ "eslint-plugin-import": "^2.26.0",
42
+ "eslint-plugin-node": "^11.1.0",
43
+ "eslint-plugin-promise": "^5.2.0",
44
+ "mocha": "^10.0.0",
45
+ "typescript": "^4.6.4"
46
+ }
47
+ }
@@ -0,0 +1,7 @@
1
+ 「こんにちは」と表示。
2
+ 1 + 2 × 3を表示。
3
+ 2に3を掛けて、1を足して表示。
4
+ 「{今日} {今}」を表示。
5
+ ナデシコ種類を表示。
6
+ ナデシコバージョンを表示。
7
+
@@ -0,0 +1,4 @@
1
+ import core from '../index.mjs';
2
+ const com = new core.NakoCompiler();
3
+ const g = com.run('1 + 2 * 3を表示');
4
+ console.log(g.log);
@@ -0,0 +1,6 @@
1
+ import core from '../index.mjs'
2
+ const com = new core.NakoCompiler()
3
+ const g = com.run('1 + 2 * 3を表示')
4
+ console.log(g.log)
5
+
6
+