MinitScript  0.9.31 PRE-BETA
minitscripttranspiler-main.cpp
Go to the documentation of this file.
1 #include <memory>
2 #include <string>
3 #include <vector>
4 
12 
13 using std::exit;
14 using std::make_unique;
15 using std::string;
16 using std::vector;
17 
24 
25 int main(int argc, char** argv)
26 {
27  Console::printLine(string("minitscripttranspiler ") + Version::getVersion());
28  Console::printLine(Version::getCopyright());
29  Console::printLine();
30 
31  //
32  if (argc < 3) {
33  Console::printLine("Usage: minitscripttranspiler script_filename transpilation_filename [minitscript_extension_file1] [minitscript_extension_fileN]");
34  return EXIT_FAILURE;
35  }
36 
37  vector<string> minitScriptExtensionFileNames;
38  for (auto i = 3; i < argc; i++) minitScriptExtensionFileNames.push_back(argv[i]);
39 
40  //
41  MinitScript::initialize();
42 
43  //
44  auto scriptFileName = string(argv[1]);
45  auto context = make_unique<Context>();
46  auto minitScript = make_unique<MinitScript>();
47  minitScript->setContext(context.get());
48  minitScript->parseScript(
49  FileSystem::getPathName(scriptFileName),
50  FileSystem::getFileName(scriptFileName)
51  );
52  if (minitScript->isValid() == false) {
53  Console::printLine(scriptFileName + ": Script not valid. Exiting!");
54  } else {
55  //
56  Transpiler::transpile(minitScript.get(), argv[2], minitScriptExtensionFileNames);
57  }
58 
59  //
60  return EXIT_SUCCESS;
61 }
MinitScript transpiler.
Definition: Transpiler.h:28
int main(int argc, char **argv)