blob: 026cd18b1f9bd5904c714ca7edff0b8038f56fa6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#ifndef LISP16_ENV_H
#define LISP16_ENV_H
#include "mem.h"
#include "stream.h"
typedef struct {
lsp_mem_t *m;
lsp_in_stream_t *in;
lsp_out_stream_t *out;
// internal
struct {
lsp_bool_t is_value;
lsp_addr_t ctx;
lsp_addr_t value;
} result;
} lsp_env_t;
void lsp_env_init(lsp_env_t *e, lsp_mem_t *m, lsp_in_stream_t *in,
lsp_out_stream_t *out);
lsp_status_t lsp_env_set_result_value(lsp_env_t *e, lsp_addr_t value);
lsp_status_t lsp_env_set_result_eval(lsp_env_t *e, lsp_addr_t ctx,
lsp_addr_t value);
lsp_status_t lsp_env_resolve(lsp_env_t *e, lsp_addr_t ctx, lsp_addr_t value,
lsp_addr_t *result);
#endif
|