mirror of
https://github.com/jorenchik/mdemory.git
synced 2026-03-22 00:26:21 +00:00
44 lines
835 B
C++
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};
|
|
}
|