From 97bbe98289fb74c7cf2d9793b80a1a27b4146045 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Thu, 8 Oct 2020 13:01:18 +0800 Subject: change file extension moonp. --- src/MoonP/moon_compiler.cpp | 7 +++---- src/MoonP/moon_compiler.h | 3 ++- src/MoonP/moonplus.cpp | 6 +++++- src/MoonP/moonplus.h | 11 ++++++----- src/MoonP/stacktraceplus.h | 2 +- src/moonp.cpp | 8 ++++---- 6 files changed, 21 insertions(+), 16 deletions(-) (limited to 'src') 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) { return std::string(sv); } -const std::string_view version() { - return "0.4.15"sv; -} +const std::string_view version = "0.4.16"sv; +const std::string_view extension = "mp"sv; class MoonCompilerImpl { public: @@ -4926,7 +4925,7 @@ private: } case id(): { auto pair = static_cast(item); - macroPairs.emplace_back(_parser.toString(pair->value->name), _parser.toString(pair->key->name)); + macroPairs.emplace_back(_parser.toString(pair->value->name), _parser.toString(pair->key->name)); break; } 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 namespace MoonP { -const std::string_view version(); +extern const std::string_view version; +extern const std::string_view extension; struct MoonConfig { 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) { lua_getfield(L, -1, "loaded"); // package loaded lua_createtable(L, 0, 0); // package loaded moonp lua_pushcfunction(L, moontolua); // package loaded moonp func - lua_setfield(L, -2, "to_lua"); // moonp["to_lua"] = func, package loaded tb + lua_setfield(L, -2, "to_lua"); // moonp["to_lua"] = func, package loaded moonp + lua_pushlstring(L, &MoonP::version.front(), MoonP::version.size()); // package loaded moonp version + lua_setfield(L, -2, "version"); // loaded["version"] = version, package loaded moonp + lua_pushlstring(L, &MoonP::extension.front(), MoonP::extension.size()); // package loaded moonp ext + lua_setfield(L, -2, "extension"); // loaded["extension"] = ext, package loaded moonp lua_pushcfunction(L, init_stacktraceplus); // package loaded moonp func1 lua_setfield(L, -2, "load_stacktraceplus"); // moonp["load_stacktraceplus"] = func1, package loaded moonp 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 @@ -R"moonscript_codes( +R"moonplus_codes( --[[ Copyright (C) 2020 by Leaf Corcoran, modified by Li Jin @@ -73,6 +73,7 @@ get_options = function(...) end end create_moonpath = function(package_path) + local extension = moonp.extension local moonpaths do local _accum_0 = { } @@ -87,7 +88,7 @@ create_moonpath = function(package_path) _continue_0 = true break end - _accum_0[_len_0] = prefix .. ".moon" + _accum_0[_len_0] = prefix .. "." .. extension _len_0 = _len_0 + 1 _continue_0 = true until true @@ -134,7 +135,7 @@ moon_loader = function(name) end return res end - return nil, "Could not find moon file" + return nil, "Could not find moonp file" end moon_call = function(f, ...) local args = { @@ -148,7 +149,7 @@ moon_call = function(f, ...) end loadstring = function(...) local options, str, chunk_name, mode, env = get_options(...) - chunk_name = chunk_name or "=(moonscript.loadstring)" + chunk_name = chunk_name or "=(moonplus.loadstring)" local code, err = moonp.to_lua(str, options) if not code then return nil, err @@ -247,4 +248,4 @@ for k, v in pairs({ }) do moonp[k] = v end -)moonscript_codes"; +)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) end if file_exist then local codes = moonp.read_file(file_path) - local moonFile = codes:match("^%s*--%s*%[moon%]:%s*([^\n]*)") + local moonFile = codes:match("^%s*--%s*%[moonp%]:%s*([^\n]*)") if moonFile then fname = moonFile:gsub("^%s*(.-)%s*$", "%1") 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) { break; } }); - std::cout << "Moonscript+ "sv << MoonP::version() << '\n'; + std::cout << "Moonscript+ "sv << MoonP::version << '\n'; while (true) { count++; std::string codes; @@ -366,7 +366,7 @@ int main(int narg, const char** args) { std::cout << help; return 0; } else if (arg == "-v"sv) { - std::cout << "Moonscript+ version: "sv << MoonP::version() << '\n'; + std::cout << "Moonscript+ version: "sv << MoonP::version << '\n'; return 0; } else if (arg == "-o"sv) { ++i; @@ -382,7 +382,7 @@ int main(int narg, const char** args) { if (!item.is_directory()) { auto ext = item.path().extension().string(); for (char& ch : ext) ch = std::tolower(ch); - if (ext == ".moon"sv) { + if (!ext.empty() && ext.substr(1) == MoonP::extension) { files.emplace_back(item.path().string(), item.path().lexically_relative(arg).string()); } } @@ -453,7 +453,7 @@ int main(int narg, const char** args) { if (output) { const auto& codes = std::get<0>(result); if (config.reserveLineNumber) { - auto head = std::string("-- [moon]: "sv) + file.first + '\n'; + auto head = std::string("-- [moonp]: "sv) + file.first + '\n'; output.write(head.c_str(), head.size()); } output.write(codes.c_str(), codes.size()); -- cgit v1.2.3-55-g6feb