Refactor test execute functions

This commit is contained in:
ala89 2024-01-03 16:20:42 +01:00
parent b5e51b8ebc
commit 70aebb35a6
7 changed files with 66 additions and 65 deletions

View File

@ -1,18 +1,11 @@
#include "include/test.h" #include "include/test.h"
#include "../src/include/errors.h" #include "../src/include/execute.h"
#include "../src/include/memory.h" #include "../src/include/utils.h"
#include "../src/include/parser.h"
#include "../src/include/tokenize.h"
#include "../src/include/interpreter.h"
int execute(string s) { int execute(string s) {
Memory memory;; Memory memory;
vector<Token> tokens = tokenize({ s }); return get<int>(execute(split_string(s, '\n'), memory));
Node ast = parse(tokens);
EvalResult res = eval(ast, memory);
return get<int>(res);
} }
int main() { int main() {

View File

@ -1,17 +1,11 @@
#include "include/test.h" #include "include/test.h"
#include "../src/include/memory.h" #include "../src/include/execute.h"
#include "../src/include/tokenize.h" #include "../src/include/utils.h"
#include "../src/include/parser.h"
#include "../src/include/interpreter.h"
int execute(string s) { int execute(string s) {
Memory memory;; Memory memory;
vector<Token> tokens = tokenize({ s }); return get<int>(execute(split_string(s, '\n'), memory));
Node ast = parse(tokens);
EvalResult res = eval(ast, memory);
return get<int>(res);
} }
int main() { int main() {

View File

@ -1,19 +1,11 @@
#include "include/test.h" #include "include/test.h"
#include "../src/include/memory.h" #include "../src/include/execute.h"
#include "../src/include/tokenize.h" #include "../src/include/utils.h"
#include "../src/include/parser.h"
#include "../src/include/analysis.h"
#include "../src/include/interpreter.h"
EvalResult execute(string s) { EvalResult execute(string s) {
Memory memory;; Memory memory;
vector<Token> tokens = tokenize({ s }); return execute(split_string(s, '\n'), memory);
Node ast = parse(tokens);
analyze(ast, memory);
EvalResult res = eval(ast, memory);
return res;
} }
int main() { int main() {

View File

@ -1,17 +1,11 @@
#include "include/test.h" #include "include/test.h"
#include "../src/include/memory.h" #include "../src/include/execute.h"
#include "../src/include/tokenize.h" #include "../src/include/utils.h"
#include "../src/include/parser.h"
#include "../src/include/interpreter.h"
int execute(string s) { int execute(string s) {
Memory memory;; Memory memory;
vector<Token> tokens = tokenize({ s }); return get<int>(execute(split_string(s, '\n'), memory));
Node ast = parse(tokens);
EvalResult res = eval(ast, memory);
return get<int>(res);
} }
int main() { int main() {

42
test/repl.cpp Normal file
View File

@ -0,0 +1,42 @@
#include "include/test.h"
#include "../src/include/execute.h"
#include "../src/include/utils.h"
EvalResult execute(string s, Memory& memory) {
return execute(split_string(s, '\n'), memory);
}
int main() {
_TEST_PRESENTATION("Repl");
Memory mem1;
_TEST_ASSERT(
_TEST_NO_EXCEPTION(get<int>(execute("int x = 1;", mem1)) == 1),
"Déclaration d'une variable globale",
false
);
_TEST_ASSERT(
_TEST_NO_EXCEPTION(get<int>(execute("x;", mem1)) == 1),
"Persistance de variable",
true
);
Memory mem2;
_TEST_ASSERT(
_TEST_IS_EXCEPTION(execute("{ int x = 1; 1 / 0; }", mem2), ErrorType::DivisionByZero),
"Déclaration d'une scope avec erreur au runtime",
false
);
_TEST_ASSERT(
_TEST_IS_EXCEPTION(execute("x;", mem2), ErrorType::UnknownIdentifier),
"Destruction des scopes en cas d'erreur",
true
);
return 0;
}

View File

@ -1,17 +1,11 @@
#include "include/test.h" #include "include/test.h"
#include "../src/include/memory.h" #include "../src/include/execute.h"
#include "../src/include/tokenize.h" #include "../src/include/utils.h"
#include "../src/include/parser.h"
#include "../src/include/interpreter.h"
EvalResult execute(string s) { EvalResult execute(string s) {
Memory memory;; Memory memory;
vector<Token> tokens = tokenize({ s }); return execute(split_string(s, '\n'), memory);
Node ast = parse(tokens);
EvalResult res = eval(ast, memory);
return res;
} }
int main() { int main() {

View File

@ -1,19 +1,11 @@
#include "include/test.h" #include "include/test.h"
#include "../src/include/memory.h" #include "../src/include/execute.h"
#include "../src/include/tokenize.h" #include "../src/include/utils.h"
#include "../src/include/parser.h"
#include "../src/include/analysis.h"
#include "../src/include/interpreter.h"
EvalResult execute(string s) { EvalResult execute(string s) {
Memory memory;; Memory memory;
vector<Token> tokens = tokenize({ s }); return execute(split_string(s, '\n'), memory);
Node ast = parse(tokens);
analyze(ast, memory);
EvalResult res = eval(ast, memory);
return res;
} }
int main() { int main() {