aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2020-10-08 13:01:18 +0800
committerLi Jin <dragon-fly@qq.com>2020-10-08 13:01:18 +0800
commit97bbe98289fb74c7cf2d9793b80a1a27b4146045 (patch)
tree4bee0dded55bad28f6822b6e2dd3ea5251c66ae2
parent5b656d2913e4f9f0017698ec835ce4ddda1dc81f (diff)
downloadyuescript-97bbe98289fb74c7cf2d9793b80a1a27b4146045.tar.gz
yuescript-97bbe98289fb74c7cf2d9793b80a1a27b4146045.tar.bz2
yuescript-97bbe98289fb74c7cf2d9793b80a1a27b4146045.zip
change file extension moonp.
-rw-r--r--spec/inputs/ambiguous.mp (renamed from spec/inputs/ambiguous.moon)0
-rw-r--r--spec/inputs/assign.mp (renamed from spec/inputs/assign.moon)0
-rw-r--r--spec/inputs/attrib.mp (renamed from spec/inputs/attrib.moon)0
-rw-r--r--spec/inputs/backcall.mp (renamed from spec/inputs/backcall.moon)0
-rw-r--r--spec/inputs/bubbling.mp (renamed from spec/inputs/bubbling.moon)0
-rw-r--r--spec/inputs/class.mp (renamed from spec/inputs/class.moon)0
-rw-r--r--spec/inputs/comprehension.mp (renamed from spec/inputs/comprehension.moon)0
-rw-r--r--spec/inputs/cond.mp (renamed from spec/inputs/cond.moon)0
-rw-r--r--spec/inputs/destructure.mp (renamed from spec/inputs/destructure.moon)0
-rw-r--r--spec/inputs/do.mp (renamed from spec/inputs/do.moon)0
-rw-r--r--spec/inputs/existential.mp (renamed from spec/inputs/existential.moon)0
-rw-r--r--spec/inputs/export.mp (renamed from spec/inputs/export.moon)0
-rw-r--r--spec/inputs/export_default.mp (renamed from spec/inputs/export_default.moon)0
-rw-r--r--spec/inputs/funcs.mp (renamed from spec/inputs/funcs.moon)0
-rw-r--r--spec/inputs/global.mp (renamed from spec/inputs/global.moon)0
-rw-r--r--spec/inputs/goto.mp (renamed from spec/inputs/goto.moon)0
-rw-r--r--spec/inputs/import.mp (renamed from spec/inputs/import.moon)0
-rw-r--r--spec/inputs/lists.mp (renamed from spec/inputs/lists.moon)0
-rw-r--r--spec/inputs/literals.mp (renamed from spec/inputs/literals.moon)0
-rw-r--r--spec/inputs/local.mp (renamed from spec/inputs/local.moon)0
-rw-r--r--spec/inputs/loops.mp (renamed from spec/inputs/loops.moon)0
-rw-r--r--spec/inputs/macro.mp (renamed from spec/inputs/macro.moon)16
-rw-r--r--spec/inputs/macro_export.mp (renamed from spec/inputs/macro_export.moon)0
-rw-r--r--spec/inputs/operators.mp (renamed from spec/inputs/operators.moon)0
-rw-r--r--spec/inputs/plus.mp (renamed from spec/inputs/plus.moon)0
-rw-r--r--spec/inputs/return.mp (renamed from spec/inputs/return.moon)0
-rw-r--r--spec/inputs/string.mp (renamed from spec/inputs/string.moon)0
-rw-r--r--spec/inputs/stub.mp (renamed from spec/inputs/stub.moon)0
-rw-r--r--spec/inputs/switch.mp (renamed from spec/inputs/switch.moon)0
-rw-r--r--spec/inputs/syntax.mp (renamed from spec/inputs/syntax.moon)8
-rw-r--r--spec/inputs/tables.mp (renamed from spec/inputs/tables.moon)0
-rw-r--r--spec/inputs/unless_else.mp (renamed from spec/inputs/unless_else.moon)0
-rw-r--r--spec/inputs/using.mp (renamed from spec/inputs/using.moon)0
-rw-r--r--spec/inputs/whitespace.mp (renamed from spec/inputs/whitespace.moon)0
-rw-r--r--spec/inputs/with.mp (renamed from spec/inputs/with.moon)0
-rw-r--r--src/MoonP/moon_compiler.cpp7
-rw-r--r--src/MoonP/moon_compiler.h3
-rw-r--r--src/MoonP/moonplus.cpp6
-rw-r--r--src/MoonP/moonplus.h11
-rw-r--r--src/MoonP/stacktraceplus.h2
-rw-r--r--src/moonp.cpp8
41 files changed, 34 insertions, 27 deletions
diff --git a/spec/inputs/ambiguous.moon b/spec/inputs/ambiguous.mp
index a5980db..a5980db 100644
--- a/spec/inputs/ambiguous.moon
+++ b/spec/inputs/ambiguous.mp
diff --git a/spec/inputs/assign.moon b/spec/inputs/assign.mp
index dac2ba3..dac2ba3 100644
--- a/spec/inputs/assign.moon
+++ b/spec/inputs/assign.mp
diff --git a/spec/inputs/attrib.moon b/spec/inputs/attrib.mp
index bc1e67e..bc1e67e 100644
--- a/spec/inputs/attrib.moon
+++ b/spec/inputs/attrib.mp
diff --git a/spec/inputs/backcall.moon b/spec/inputs/backcall.mp
index a648b16..a648b16 100644
--- a/spec/inputs/backcall.moon
+++ b/spec/inputs/backcall.mp
diff --git a/spec/inputs/bubbling.moon b/spec/inputs/bubbling.mp
index 23a85d4..23a85d4 100644
--- a/spec/inputs/bubbling.moon
+++ b/spec/inputs/bubbling.mp
diff --git a/spec/inputs/class.moon b/spec/inputs/class.mp
index ca8b58c..ca8b58c 100644
--- a/spec/inputs/class.moon
+++ b/spec/inputs/class.mp
diff --git a/spec/inputs/comprehension.moon b/spec/inputs/comprehension.mp
index b6adb94..b6adb94 100644
--- a/spec/inputs/comprehension.moon
+++ b/spec/inputs/comprehension.mp
diff --git a/spec/inputs/cond.moon b/spec/inputs/cond.mp
index 3dee99b..3dee99b 100644
--- a/spec/inputs/cond.moon
+++ b/spec/inputs/cond.mp
diff --git a/spec/inputs/destructure.moon b/spec/inputs/destructure.mp
index 49e6393..49e6393 100644
--- a/spec/inputs/destructure.moon
+++ b/spec/inputs/destructure.mp
diff --git a/spec/inputs/do.moon b/spec/inputs/do.mp
index 2fbcbb9..2fbcbb9 100644
--- a/spec/inputs/do.moon
+++ b/spec/inputs/do.mp
diff --git a/spec/inputs/existential.moon b/spec/inputs/existential.mp
index 3055705..3055705 100644
--- a/spec/inputs/existential.moon
+++ b/spec/inputs/existential.mp
diff --git a/spec/inputs/export.moon b/spec/inputs/export.mp
index 9a494d9..9a494d9 100644
--- a/spec/inputs/export.moon
+++ b/spec/inputs/export.mp
diff --git a/spec/inputs/export_default.moon b/spec/inputs/export_default.mp
index 73f43ac..73f43ac 100644
--- a/spec/inputs/export_default.moon
+++ b/spec/inputs/export_default.mp
diff --git a/spec/inputs/funcs.moon b/spec/inputs/funcs.mp
index 4176e33..4176e33 100644
--- a/spec/inputs/funcs.moon
+++ b/spec/inputs/funcs.mp
diff --git a/spec/inputs/global.moon b/spec/inputs/global.mp
index 7d6cfde..7d6cfde 100644
--- a/spec/inputs/global.moon
+++ b/spec/inputs/global.mp
diff --git a/spec/inputs/goto.moon b/spec/inputs/goto.mp
index 3410ca3..3410ca3 100644
--- a/spec/inputs/goto.moon
+++ b/spec/inputs/goto.mp
diff --git a/spec/inputs/import.moon b/spec/inputs/import.mp
index 99981f8..99981f8 100644
--- a/spec/inputs/import.moon
+++ b/spec/inputs/import.mp
diff --git a/spec/inputs/lists.moon b/spec/inputs/lists.mp
index 15eb9ab..15eb9ab 100644
--- a/spec/inputs/lists.moon
+++ b/spec/inputs/lists.mp
diff --git a/spec/inputs/literals.moon b/spec/inputs/literals.mp
index d4b0326..d4b0326 100644
--- a/spec/inputs/literals.moon
+++ b/spec/inputs/literals.mp
diff --git a/spec/inputs/local.moon b/spec/inputs/local.mp
index 33251a9..33251a9 100644
--- a/spec/inputs/local.moon
+++ b/spec/inputs/local.mp
diff --git a/spec/inputs/loops.moon b/spec/inputs/loops.mp
index 24d960f..24d960f 100644
--- a/spec/inputs/loops.moon
+++ b/spec/inputs/loops.mp
diff --git a/spec/inputs/macro.moon b/spec/inputs/macro.mp
index aa8356c..c7ec79c 100644
--- a/spec/inputs/macro.moon
+++ b/spec/inputs/macro.mp
@@ -1,6 +1,6 @@
1macro block init = -> 1macro block init = ->
2 with require "moonp" 2 with require "moonp"
3 package.moonpath = "?.moon;./spec/inputs/?.moon" 3 package.moonpath = "?.mp;./spec/inputs/?.mp"
4 "" 4 ""
5 5
6$init! 6$init!
@@ -25,7 +25,7 @@ if $and f1!, f2!, f3!
25 25
26macro expr in = (target, ...)-> 26macro expr in = (target, ...)->
27 values = [value for value in *{...}] 27 values = [value for value in *{...}]
28 $showMacro "in", "#{ table.concat ["#{target} == #{item}" for item in *values], " or " }" 28 $showMacro "in", table.concat ["#{target} == #{item}" for item in *values], " or "
29 29
30if x |> $in "Apple", "Pig", "Dog" 30if x |> $in "Apple", "Pig", "Dog"
31 print "exist" 31 print "exist"
@@ -55,7 +55,7 @@ macro expr pipe = (...)->
55 when 1 then return ... 55 when 1 then return ...
56 ops = {...} 56 ops = {...}
57 last = ops[1] 57 last = ops[1]
58 stmts = for i = 2,#ops 58 stmts = for i = 2, #ops
59 stmt = "\tlocal _#{i} = #{last} |> #{ops[i]}" 59 stmt = "\tlocal _#{i} = #{last} |> #{ops[i]}"
60 last = "_#{i}" 60 last = "_#{i}"
61 stmt 61 stmt
@@ -164,15 +164,17 @@ macro block chainB = (...)->
164 last = nil 164 last = nil
165 stmts = for i = 1,#items 165 stmts = for i = 1,#items
166 stmt = if i == #items 166 stmt = if i == #items
167 "\t#{last and "#{last}\\" or ""}#{items[i]}" 167 lastStr = last and "#{last}\\" or ""
168 "\t#{lastStr}#{items[i]}"
168 else 169 else
169 "\tlocal _#{i} = #{last and "#{last}\\" or ""}#{items[i]}" 170 lastStr = last and "#{last}\\" or ""
171 "\tlocal _#{i} = #{lastStr}#{items[i]}"
170 last = "_#{i}" 172 last = "_#{i}"
171 stmt 173 stmt
172 res = "do 174 res = "do
173#{table.concat stmts, "\n"} 175#{table.concat stmts, '\n'}
174" 176"
175 $showMacro "chainB",res 177 $showMacro "chainB", res
176 178
177$chainB( 179$chainB(
178 _{1, 2, 3, 4, -2, 3} 180 _{1, 2, 3, 4, -2, 3}
diff --git a/spec/inputs/macro_export.moon b/spec/inputs/macro_export.mp
index 759c6d1..759c6d1 100644
--- a/spec/inputs/macro_export.moon
+++ b/spec/inputs/macro_export.mp
diff --git a/spec/inputs/operators.moon b/spec/inputs/operators.mp
index 57e58d6..57e58d6 100644
--- a/spec/inputs/operators.moon
+++ b/spec/inputs/operators.mp
diff --git a/spec/inputs/plus.moon b/spec/inputs/plus.mp
index ca03499..ca03499 100644
--- a/spec/inputs/plus.moon
+++ b/spec/inputs/plus.mp
diff --git a/spec/inputs/return.moon b/spec/inputs/return.mp
index f170ffd..f170ffd 100644
--- a/spec/inputs/return.moon
+++ b/spec/inputs/return.mp
diff --git a/spec/inputs/string.moon b/spec/inputs/string.mp
index 5d8f772..5d8f772 100644
--- a/spec/inputs/string.moon
+++ b/spec/inputs/string.mp
diff --git a/spec/inputs/stub.moon b/spec/inputs/stub.mp
index 60347e7..60347e7 100644
--- a/spec/inputs/stub.moon
+++ b/spec/inputs/stub.mp
diff --git a/spec/inputs/switch.moon b/spec/inputs/switch.mp
index ac3dbea..ac3dbea 100644
--- a/spec/inputs/switch.moon
+++ b/spec/inputs/switch.mp
diff --git a/spec/inputs/syntax.moon b/spec/inputs/syntax.mp
index af72f73..1bb962f 100644
--- a/spec/inputs/syntax.moon
+++ b/spec/inputs/syntax.mp
@@ -233,12 +233,12 @@ yeah
233 sure: sir 233 sure: sir
234 234
235hello "no comma" 235hello "no comma"
236 yeah: dada 236 yeah: dada
237 another: world 237 another: world
238 238
239hello "comma", 239hello "comma",
240 something: hello_world 240 something: hello_world
241 frick: you 241 frick: you
242 242
243-- creates one table 243-- creates one table
244another hello, one, 244another hello, one,
diff --git a/spec/inputs/tables.moon b/spec/inputs/tables.mp
index e816003..e816003 100644
--- a/spec/inputs/tables.moon
+++ b/spec/inputs/tables.mp
diff --git a/spec/inputs/unless_else.moon b/spec/inputs/unless_else.mp
index b421d4d..b421d4d 100644
--- a/spec/inputs/unless_else.moon
+++ b/spec/inputs/unless_else.mp
diff --git a/spec/inputs/using.moon b/spec/inputs/using.mp
index fe0a433..fe0a433 100644
--- a/spec/inputs/using.moon
+++ b/spec/inputs/using.mp
diff --git a/spec/inputs/whitespace.moon b/spec/inputs/whitespace.mp
index 329280f..329280f 100644
--- a/spec/inputs/whitespace.moon
+++ b/spec/inputs/whitespace.mp
diff --git a/spec/inputs/with.moon b/spec/inputs/with.mp
index 704c494..704c494 100644
--- a/spec/inputs/with.moon
+++ b/spec/inputs/with.mp
diff --git a/src/MoonP/moon_compiler.cpp b/src/MoonP/moon_compiler.cpp
index 8c0746f..6e7db2c 100644
--- a/src/MoonP/moon_compiler.cpp
+++ b/src/MoonP/moon_compiler.cpp
@@ -53,9 +53,8 @@ inline std::string s(std::string_view sv) {
53 return std::string(sv); 53 return std::string(sv);
54} 54}
55 55
56const std::string_view version() { 56const std::string_view version = "0.4.16"sv;
57 return "0.4.15"sv; 57const std::string_view extension = "mp"sv;
58}
59 58
60class MoonCompilerImpl { 59class MoonCompilerImpl {
61public: 60public:
@@ -4926,7 +4925,7 @@ private:
4926 } 4925 }
4927 case id<macro_name_pair_t>(): { 4926 case id<macro_name_pair_t>(): {
4928 auto pair = static_cast<macro_name_pair_t*>(item); 4927 auto pair = static_cast<macro_name_pair_t*>(item);
4929 macroPairs.emplace_back(_parser.toString(pair->value->name), _parser.toString(pair->key->name)); 4928 macroPairs.emplace_back(_parser.toString(pair->value->name), _parser.toString(pair->key->name));
4930 break; 4929 break;
4931 } 4930 }
4932 default: 4931 default:
diff --git a/src/MoonP/moon_compiler.h b/src/MoonP/moon_compiler.h
index 37a79bf..cb57d57 100644
--- a/src/MoonP/moon_compiler.h
+++ b/src/MoonP/moon_compiler.h
@@ -17,7 +17,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
17 17
18namespace MoonP { 18namespace MoonP {
19 19
20const std::string_view version(); 20extern const std::string_view version;
21extern const std::string_view extension;
21 22
22struct MoonConfig { 23struct MoonConfig {
23 bool lintGlobalVariable = false; 24 bool lintGlobalVariable = false;
diff --git a/src/MoonP/moonplus.cpp b/src/MoonP/moonplus.cpp
index cb6d3ec..c775d75 100644
--- a/src/MoonP/moonplus.cpp
+++ b/src/MoonP/moonplus.cpp
@@ -122,7 +122,11 @@ int luaopen_moonp(lua_State* L) {
122 lua_getfield(L, -1, "loaded"); // package loaded 122 lua_getfield(L, -1, "loaded"); // package loaded
123 lua_createtable(L, 0, 0); // package loaded moonp 123 lua_createtable(L, 0, 0); // package loaded moonp
124 lua_pushcfunction(L, moontolua); // package loaded moonp func 124 lua_pushcfunction(L, moontolua); // package loaded moonp func
125 lua_setfield(L, -2, "to_lua"); // moonp["to_lua"] = func, package loaded tb 125 lua_setfield(L, -2, "to_lua"); // moonp["to_lua"] = func, package loaded moonp
126 lua_pushlstring(L, &MoonP::version.front(), MoonP::version.size()); // package loaded moonp version
127 lua_setfield(L, -2, "version"); // loaded["version"] = version, package loaded moonp
128 lua_pushlstring(L, &MoonP::extension.front(), MoonP::extension.size()); // package loaded moonp ext
129 lua_setfield(L, -2, "extension"); // loaded["extension"] = ext, package loaded moonp
126 lua_pushcfunction(L, init_stacktraceplus); // package loaded moonp func1 130 lua_pushcfunction(L, init_stacktraceplus); // package loaded moonp func1
127 lua_setfield(L, -2, "load_stacktraceplus"); // moonp["load_stacktraceplus"] = func1, package loaded moonp 131 lua_setfield(L, -2, "load_stacktraceplus"); // moonp["load_stacktraceplus"] = func1, package loaded moonp
128 lua_setfield(L, -2, "moonp"); // loaded["moonp"] = moonp, package loaded 132 lua_setfield(L, -2, "moonp"); // loaded["moonp"] = moonp, package loaded
diff --git a/src/MoonP/moonplus.h b/src/MoonP/moonplus.h
index 83d4c75..b18ab64 100644
--- a/src/MoonP/moonplus.h
+++ b/src/MoonP/moonplus.h
@@ -1,4 +1,4 @@
1R"moonscript_codes( 1R"moonplus_codes(
2--[[ 2--[[
3Copyright (C) 2020 by Leaf Corcoran, modified by Li Jin 3Copyright (C) 2020 by Leaf Corcoran, modified by Li Jin
4 4
@@ -73,6 +73,7 @@ get_options = function(...)
73 end 73 end
74end 74end
75create_moonpath = function(package_path) 75create_moonpath = function(package_path)
76 local extension = moonp.extension
76 local moonpaths 77 local moonpaths
77 do 78 do
78 local _accum_0 = { } 79 local _accum_0 = { }
@@ -87,7 +88,7 @@ create_moonpath = function(package_path)
87 _continue_0 = true 88 _continue_0 = true
88 break 89 break
89 end 90 end
90 _accum_0[_len_0] = prefix .. ".moon" 91 _accum_0[_len_0] = prefix .. "." .. extension
91 _len_0 = _len_0 + 1 92 _len_0 = _len_0 + 1
92 _continue_0 = true 93 _continue_0 = true
93 until true 94 until true
@@ -134,7 +135,7 @@ moon_loader = function(name)
134 end 135 end
135 return res 136 return res
136 end 137 end
137 return nil, "Could not find moon file" 138 return nil, "Could not find moonp file"
138end 139end
139moon_call = function(f, ...) 140moon_call = function(f, ...)
140 local args = { 141 local args = {
@@ -148,7 +149,7 @@ moon_call = function(f, ...)
148end 149end
149loadstring = function(...) 150loadstring = function(...)
150 local options, str, chunk_name, mode, env = get_options(...) 151 local options, str, chunk_name, mode, env = get_options(...)
151 chunk_name = chunk_name or "=(moonscript.loadstring)" 152 chunk_name = chunk_name or "=(moonplus.loadstring)"
152 local code, err = moonp.to_lua(str, options) 153 local code, err = moonp.to_lua(str, options)
153 if not code then 154 if not code then
154 return nil, err 155 return nil, err
@@ -247,4 +248,4 @@ for k, v in pairs({
247}) do 248}) do
248 moonp[k] = v 249 moonp[k] = v
249end 250end
250)moonscript_codes"; 251)moonplus_codes";
diff --git a/src/MoonP/stacktraceplus.h b/src/MoonP/stacktraceplus.h
index d658c5c..e884a2c 100644
--- a/src/MoonP/stacktraceplus.h
+++ b/src/MoonP/stacktraceplus.h
@@ -335,7 +335,7 @@ local function getMoonLineNumber(fname, line)
335 end 335 end
336 if file_exist then 336 if file_exist then
337 local codes = moonp.read_file(file_path) 337 local codes = moonp.read_file(file_path)
338 local moonFile = codes:match("^%s*--%s*%[moon%]:%s*([^\n]*)") 338 local moonFile = codes:match("^%s*--%s*%[moonp%]:%s*([^\n]*)")
339 if moonFile then 339 if moonFile then
340 fname = moonFile:gsub("^%s*(.-)%s*$", "%1") 340 fname = moonFile:gsub("^%s*(.-)%s*$", "%1")
341 source = codes 341 source = codes
diff --git a/src/moonp.cpp b/src/moonp.cpp
index 68f7b10..25be015 100644
--- a/src/moonp.cpp
+++ b/src/moonp.cpp
@@ -174,7 +174,7 @@ int main(int narg, const char** args) {
174 break; 174 break;
175 } 175 }
176 }); 176 });
177 std::cout << "Moonscript+ "sv << MoonP::version() << '\n'; 177 std::cout << "Moonscript+ "sv << MoonP::version << '\n';
178 while (true) { 178 while (true) {
179 count++; 179 count++;
180 std::string codes; 180 std::string codes;
@@ -366,7 +366,7 @@ int main(int narg, const char** args) {
366 std::cout << help; 366 std::cout << help;
367 return 0; 367 return 0;
368 } else if (arg == "-v"sv) { 368 } else if (arg == "-v"sv) {
369 std::cout << "Moonscript+ version: "sv << MoonP::version() << '\n'; 369 std::cout << "Moonscript+ version: "sv << MoonP::version << '\n';
370 return 0; 370 return 0;
371 } else if (arg == "-o"sv) { 371 } else if (arg == "-o"sv) {
372 ++i; 372 ++i;
@@ -382,7 +382,7 @@ int main(int narg, const char** args) {
382 if (!item.is_directory()) { 382 if (!item.is_directory()) {
383 auto ext = item.path().extension().string(); 383 auto ext = item.path().extension().string();
384 for (char& ch : ext) ch = std::tolower(ch); 384 for (char& ch : ext) ch = std::tolower(ch);
385 if (ext == ".moon"sv) { 385 if (!ext.empty() && ext.substr(1) == MoonP::extension) {
386 files.emplace_back(item.path().string(), item.path().lexically_relative(arg).string()); 386 files.emplace_back(item.path().string(), item.path().lexically_relative(arg).string());
387 } 387 }
388 } 388 }
@@ -453,7 +453,7 @@ int main(int narg, const char** args) {
453 if (output) { 453 if (output) {
454 const auto& codes = std::get<0>(result); 454 const auto& codes = std::get<0>(result);
455 if (config.reserveLineNumber) { 455 if (config.reserveLineNumber) {
456 auto head = std::string("-- [moon]: "sv) + file.first + '\n'; 456 auto head = std::string("-- [moonp]: "sv) + file.first + '\n';
457 output.write(head.c_str(), head.size()); 457 output.write(head.c_str(), head.size());
458 } 458 }
459 output.write(codes.c_str(), codes.size()); 459 output.write(codes.c_str(), codes.size());