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