Files
mdemory/src/cpp/transpiler/api.cpp
2024-09-15 20:02:19 +03:00

44 lines
835 B
C++

#include <vector>
#include <chrono>
#include "api.h"
#include "result.h"
#include "lexer.h"
#include "parser.h"
#include "time.h"
Result<std::vector<Question*>> Transpile(std::string fileContent) {
start = std::chrono::high_resolution_clock::now();
auto lexRes = TokenizeMdem(fileContent);
auto tokens = lexRes.value;
if (lexRes.error.length() > 0) {
return {
{},
std::format(
"Lexical analysis error: {}",
lexRes.error
),
lexRes.row,
lexRes.column
};
}
auto parseRes = ParseQuestions(tokens);
auto questions = parseRes.value;
if (parseRes.error.length() > 0) {
return {
{},
std::format(
"Parsing error: {}",
parseRes.error
),
parseRes.row,
parseRes.column
};
}
end = std::chrono::high_resolution_clock::now();
ShowTime("Transpilation time");
return {questions};
}