aboutsummaryrefslogtreecommitdiff
path: root/src/MoonP/moon_compiler.cpp
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2020-02-22 01:24:47 +0800
committerLi Jin <dragon-fly@qq.com>2020-02-22 01:24:47 +0800
commit39457b75c0923cf287c9145fd9c9a6ba4a86767b (patch)
tree975f5adcad63d17821b2f40020dc2e15fae1bdac /src/MoonP/moon_compiler.cpp
parent2e9e28ceb3444e0aaf0ff7c704800b9cdc25dc87 (diff)
downloadyuescript-39457b75c0923cf287c9145fd9c9a6ba4a86767b.tar.gz
yuescript-39457b75c0923cf287c9145fd9c9a6ba4a86767b.tar.bz2
yuescript-39457b75c0923cf287c9145fd9c9a6ba4a86767b.zip
change some interfaces.
Diffstat (limited to 'src/MoonP/moon_compiler.cpp')
-rw-r--r--src/MoonP/moon_compiler.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/MoonP/moon_compiler.cpp b/src/MoonP/moon_compiler.cpp
index e6d010c..64152cf 100644
--- a/src/MoonP/moon_compiler.cpp
+++ b/src/MoonP/moon_compiler.cpp
@@ -35,9 +35,9 @@ const char* moonScriptVersion() {
35 return "0.5.0-r0.1.3"; 35 return "0.5.0-r0.1.3";
36} 36}
37 37
38class MoonCompiler { 38class MoonCompilerImpl {
39public: 39public:
40 std::tuple<std::string,std::string,GlobalVars> compile(const std::string& codes, const MoonConfig& config) { 40 std::tuple<std::string,std::string,GlobalVars> compile(std::string_view codes, const MoonConfig& config) {
41 _config = config; 41 _config = config;
42 _info = _parser.parse<File_t>(codes); 42 _info = _parser.parse<File_t>(codes);
43 GlobalVars globals; 43 GlobalVars globals;
@@ -4275,10 +4275,17 @@ private:
4275 } 4275 }
4276}; 4276};
4277 4277
4278const std::string MoonCompiler::Empty; 4278const std::string MoonCompilerImpl::Empty;
4279 4279
4280std::tuple<std::string,std::string,GlobalVars> moonCompile(const std::string& codes, const MoonConfig& config) { 4280MoonCompiler::MoonCompiler():
4281 return MoonCompiler{}.compile(codes, config); 4281_compiler(std::make_unique<MoonCompilerImpl>())
4282{ }
4283
4284MoonCompiler::~MoonCompiler()
4285{ }
4286
4287std::tuple<std::string,std::string,GlobalVars> MoonCompiler::compile(std::string_view codes, const MoonConfig& config) {
4288 return _compiler->compile(codes, config);
4282} 4289}
4283 4290
4284} // namespace MoonP 4291} // namespace MoonP