42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include <iostream>
|
|
|
|
using namespace std;
|
|
|
|
enum LANGUAGE: unsigned short {LUA=0,JS=1,PY=2};
|
|
|
|
pair<LANGUAGE, bool> 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<LANGUAGE>(i);
|
|
valid = true;
|
|
break;
|
|
}
|
|
}
|
|
return pair<LANGUAGE, bool>(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;
|
|
} |