#include using namespace std; enum LANGUAGE: unsigned short {LUA=0,JS=1,PY=2}; pair validLanguage(const string_view& it) { static const string_view languages[3] = {".lua", ".js", ".py"}; LANGUAGE selected = LUA; bool valid = false; for (unsigned short i = 0; (i <= (languages->size() - 2)); ++i) { if (it == languages[i]) { selected = static_cast(i); valid = true; break; } } return pair(selected, valid); } #include "../headers/parsing/ParseComponents.hpp" string transpile(ParseTree tree, string language) { string transpiled; auto valided = validLanguage(language); if (valided.second) { switch (valided.first) { // TODO Complete this part case LUA: break; case JS: break; case PY: break; } // TODO Actually transpile } else { cout << '"' << (char) toupper(language.at(1)) << language.erase(0, 2) << "\" is not a valid target." << endl; exit(0); } return transpiled; }