aboutsummaryrefslogtreecommitdiff
path: root/src/MoonP/moon_compiler.cpp
diff options
context:
space:
mode:
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