summaryrefslogtreecommitdiff
path: root/src/wren_inter
diff options
context:
space:
mode:
authorphysick <mynameisgennadiy@vk.com>2026-07-31 15:21:45 +0500
committerphysick <mynameisgennadiy@vk.com>2026-07-31 15:21:45 +0500
commite20b4c3a5dfe081fa2d6d772617307fae4689698 (patch)
tree95f0ce8a7ccd1398a45ff24b2e528924bccc357c /src/wren_inter
parentd56f4859c06d184f294cf4d73e7c1068db245809 (diff)
More desriptive output
Diffstat (limited to 'src/wren_inter')
-rw-r--r--src/wren_inter/wren_inter.c5
-rw-r--r--src/wren_inter/wren_inter.h13
2 files changed, 7 insertions, 11 deletions
diff --git a/src/wren_inter/wren_inter.c b/src/wren_inter/wren_inter.c
index 4b72633..103451e 100644
--- a/src/wren_inter/wren_inter.c
+++ b/src/wren_inter/wren_inter.c
@@ -46,6 +46,7 @@ char *EvaluateScript(char *script) {
WrenInterpretResult result = wrenInterpret(vm, "main", script);
switch (result) {
case WREN_RESULT_SUCCESS: break;
+ case WREN_RESULT_RUNTIME_LIMIT: break;
case WREN_RESULT_COMPILE_ERROR: break;
case WREN_RESULT_RUNTIME_ERROR: break;
}
@@ -78,3 +79,7 @@ void InterpreterFreeMachine(WrenVM *vm) {
if (sb != NULL && sb->val != NULL) free(sb);
wrenFreeVM(vm);
}
+
+StringBuilder *GetOutputSb(WrenVM *vm) {
+ return (StringBuilder*)wrenGetUserData(vm);
+}
diff --git a/src/wren_inter/wren_inter.h b/src/wren_inter/wren_inter.h
index 358dc1d..bd3ec48 100644
--- a/src/wren_inter/wren_inter.h
+++ b/src/wren_inter/wren_inter.h
@@ -2,20 +2,11 @@
#define WREN_INTER_H
#include <wren.h>
-
-enum PUZZLE_TEST_RESULT {
- RESULT_OK = 0,
- RESULT_WRONG_ANSWER,
- RESULT_COMPTIME_NO_ENTRY,
- RESULT_COMPTIME_ERR,
- RESULT_RUNTIME_ERR,
- // TODO: add async evaluation to prevent `while (true)` situation
- RESULT_TIMEOUT,
- RESULT_INIT_ERROR,
-};
+#include "../utils/stringBuilder.h"
WrenVM *InterpreterPrepareMachine();
char *GetMachineOutput(WrenVM *vm);
void InterpreterFreeMachine(WrenVM *vm);
+StringBuilder *GetOutputSb(WrenVM *vm);
#endif // WREN_INTER_H