]> git.lizzy.rs Git - nothing.git/blob - src/script/interpreter.h
Merge pull request #320 from tsoding/318
[nothing.git] / src / script / interpreter.h
1 #ifndef INTERPRETER_H_
2 #define INTERPRETER_H_
3
4 #include <stdbool.h>
5 #include <stdlib.h>
6 #include <stdio.h>
7 #include "expr.h"
8
9 struct EvalResult
10 {
11     bool is_error;
12     struct Expr expr;
13     const char *error;
14 };
15
16 struct EvalResult eval_success(struct Expr expr);
17 struct EvalResult eval_failure(const char *error, struct Expr expr);
18
19 struct EvalResult eval(Gc *gc, struct Expr scope, struct Expr expr);
20
21 void print_eval_error(FILE *stream, struct EvalResult result);
22
23 #endif  // INTERPRETER_H_