From 4bc7676ba66fa03b925cc057a0876b2cc677b7c5 Mon Sep 17 00:00:00 2001 From: starg Date: Sat, 13 Aug 2016 12:05:52 +0900 Subject: [PATCH] =?utf8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E5=87=A6=E7=90=86?= =?utf8?q?=E3=81=AE=E5=91=BC=E3=81=B3=E5=87=BA=E3=81=97=E3=82=92=E8=BF=BD?= =?utf8?q?=E5=8A=A0=E3=80=82=E4=B8=80=E9=80=9A=E3=82=8A=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/driver/yamml.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/driver/yamml.cpp b/src/driver/yamml.cpp index c4c2290..e630184 100644 --- a/src/driver/yamml.cpp +++ b/src/driver/yamml.cpp @@ -19,6 +19,20 @@ #include "msgcallback.hpp" #include "stderrwriter.hpp" +std::string CreateDefaultOutputName(const std::string& input) +{ + auto dotPos = input.rfind('.'); + + if (dotPos == input.npos) + { + return input + ".mid"; + } + else + { + return input.substr(0, dotPos) + ".mid"; + } +} + int main(int argc, char** argv) { static_cast(argc); @@ -116,6 +130,24 @@ int main(int argc, char** argv) return 0; } + auto pStdErrWriter = YAMML::Driver::CreateStdErrWriter(); + auto inputName = vm["input"].as(); + + auto output = YAMML::Driver::CompileYAMML( + inputName, + YAMML::Driver::ReadTextFile(inputName), + vm.count("entry") ? vm["entry"].as() : "Main", + YAMML::Driver::MessagePrinter(pStdErrWriter.get()) + ); + + if (output.is_initialized()) + { + YAMML::Driver::WriteBinaryFile( + vm.count("out") ? vm["out"].as() : CreateDefaultOutputName(inputName), + output.value() + ); + } + std::cout.flush(); } catch (const YAMML::Driver::FileOpenException& e) -- 2.11.0