--- /dev/null
+#ifndef __GWION_ENV
+#define __GWION_ENV
+
+#include "env/oo.h"
+#include "env/nspc.h"
+#include "env/env.h"
+
+#include "env/value.h"
+#include "env/type.h"
+#include "env/func.h"
+#include "env/context.h"
+#endif
typedef m_bool (*_exp_func)(const void*, const void*);
static inline m_bool dummy_func(const void*a NUSED,
const void*b NUSED) { return 1; }
+
+#define DECL_PRIM_FUNC(prefix) \
+static const _exp_func prim_func[] = { \
+ (_exp_func)prefix##__primary_id, (_exp_func)prefix##__primary_num, \
+ (_exp_func)prefix##__primary_float, (_exp_func)prefix##__primary_str, \
+ (_exp_func)prefix##__primary_array, (_exp_func)prefix##__primary_hack, \
+ (_exp_func)prefix##__primary_complex, (_exp_func)prefix##__primary_polar, \
+ (_exp_func)prefix##__primary_vec, (_exp_func)prefix##__primary_tuple, \
+ (_exp_func)prefix##__primary_unpack, (_exp_func)prefix##__primary_char, \
+ (_exp_func)prefix##__primary_nil \
+}
+
#define DECL_EXP_FUNC(prefix) \
static const _exp_func exp_func[] = { \
(_exp_func)prefix##_exp_decl, (_exp_func)prefix##_exp_binary, (_exp_func)prefix##_exp_unary, \
(_exp_func)prefix##_exp_dot, (_exp_func)prefix##_exp_lambda, (_exp_func)prefix##_exp_typeof \
};
+#define DECL_STMT_FUNC(prefix) \
+static const _exp_func stmt_func[] = { \
+ (_exp_func)prefix##__stmt_exp, (_exp_func)prefix##__stmt_while, \
+ (_exp_func)prefix##__stmt_until, (_exp_func)prefix##__stmt_for, \
+ (_exp_func)prefix##__stmt_auto, (_exp_func)prefix##__stmt_loop, \
+ (_exp_func)prefix##__stmt_if, (_exp_func)prefix##__stmt_code, \
+ (_exp_func)prefix##__stmt_break, (_exp_func)prefix##__stmt_continue, \
+ (_exp_func)prefix##__stmt_return, (_exp_func)prefix##__stmt_match, \
+ (_exp_func)prefix##__stmt_jump, \
+};
+
#define DECL_SECTION_FUNC(prefix) \
static const _exp_func section_func[] = { \
(_exp_func)prefix##_stmt_list, (_exp_func)prefix##_func_def, (_exp_func)prefix##_class_def, \
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
+#include "gwion_env.h"
#include "soundinfo.h"
-#include "oo.h"
-#include "env.h"
#include "vm.h"
#include "gwion.h"
#include "arg.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "instr.h"
-#include "type.h"
#include "emit.h"
#include "compile.h"
#include "gwion.h"
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
-#include "nspc.h"
-#include "value.h"
#include "instr.h"
#include "emit.h"
#include "object.h"
#include "array.h"
-#include "func.h"
#include "traverse.h"
#include "template.h"
#include "escape.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
-#include "nspc.h"
-#include "value.h"
#include "instr.h"
#include "emit.h"
#include "escape.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "instr.h"
#include "emit.h"
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "instr.h"
#include "emit.h"
#include "gwion.h"
-#include "type.h"
-#include "func.h"
#include "memoize.h"
struct Memoize_ {
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "context.h"
-#include "type.h"
-#include "func.h"
-#include "value.h"
#include "instr.h"
#include "emit.h"
#include "engine.h"
#include "gwion_util.h"
#include "gwion_ast.h"
+#include "gwion_env.h"
#include "gwiondata.h"
-#include "oo.h"
-#include "env.h"
#include "vm.h"
#include "instr.h"
#include "gwion.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
-#include "instr.h"
#include "object.h"
+#include "instr.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <ctype.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "traverse.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "func.h"
-#include "nspc.h"
#include "gwion.h"
#include "operator.h"
#include "import.h"
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "array.h"
#include "emit.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "traverse.h"
#include <complex.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "instr.h"
-#include "nspc.h"
-#include "type.h"
#include "object.h"
#include "emit.h"
-#include "env.h"
#include "vm.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "gwi.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "gwi.h"
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
-#include "value.h"
-#include "func.h"
#include "instr.h"
#include "emit.h"
#include "object.h"
-#include "nspc.h"
#include "operator.h"
#include "import.h"
#include "traverse.h"
#include <complex.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "func.h"
#include "object.h"
#include "instr.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "gack.h"
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
-#include "func.h"
#include "array.h"
-#include "nspc.h"
#include "shreduler_private.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
+#include "emit.h"
+#include "template.h"
INSTR(DTOR_EOC) {
const M_Object o = *(M_Object*)MEM(0);
vm_shred_exit(shred);
}
-#include "gwion.h"
-#include "emit.h"
-#include "value.h"
-#include "template.h"
-
INSTR(PopArrayClass) {
POP_REG(shred, SZ_INT);
const M_Object obj = *(M_Object*)REG(-SZ_INT);
#include <math.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "gwion.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "ugen.h"
-#include "func.h"
#include "gwi.h"
static DTOR(basic_dtor) {
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
-#include "nspc.h"
-#include "value.h"
#include "instr.h"
#include "object.h"
#include "operator.h"
#include "emit.h"
#include "traverse.h"
#include "parse.h"
-#include "func.h"
#include "specialid.h"
#include "gwi.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "emit.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "gwi.h"
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
-#include "nspc.h"
#include "instr.h"
#include "object.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "emit.h"
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
+#include "gwion_env.h"
#include "gwion_thread.h"
-#include "oo.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "shreduler_private.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "emit.h"
}
vector_release(v);
}
-#include "nspc.h"
+
GWION_IMPORT(shred) {
const Type t_shred = gwi_class_ini(gwi, "Shred", NULL);
gwi_class_xtor(gwi, NULL, shred_dtor);
#include <math.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "emit.h"
#include "specialid.h"
-#include "func.h"
#include "gwi.h"
ANN static void push_string(const VM_Shred shred, const M_Object obj, const m_str c) {
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "instr.h"
-#include "nspc.h"
-#include "type.h"
#include "object.h"
#include "emit.h"
-#include "env.h"
#include "vm.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "gwi.h"
#include "traverse.h"
-#include "value.h"
#include "object.h"
#include "parse.h"
#include "tuple.h"
-#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "gwion.h"
-#include "type.h"
-#include "instr.h"
#include "object.h"
-#include "value.h"
+#include "instr.h"
#include "operator.h"
#include "import.h"
#include "gwi.h"
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
#include "instr.h"
#include "emit.h"
#include "object.h"
#include "vararg.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "gwi.h"
#include "specialid.h"
#include "traverse.h"
#include "parse.h"
-#include "func.h"
void free_vararg(MemPool p, struct Vararg_* arg) {
xfree(arg->d);
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "driver.h"
#include <signal.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
#include "arg.h"
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "nspc.h"
+#include "gwion_env.h"
#include "vm.h"
#include "gwion.h"
-#include "context.h"
ANN static void free_context(const Context a, Gwion gwion) {
REM_REF(a->nspc, gwion)
-#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
-#include "value.h"
#include "traverse.h"
-#include "type.h"
-#include "context.h"
-#include "nspc.h"
-#include "mpool.h"
#include "vm.h"
#include "parse.h"
-#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "value.h"
+#include "gwion_env.h"
#include "traverse.h"
-#include "type.h"
-#include "context.h"
-#include "nspc.h"
#include "vm.h"
#include "parse.h"
-#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "nspc.h"
-#include "value.h"
-#include "func.h"
#include "object.h"
#include "gwion.h"
#include "operator.h"
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "type.h"
-#include "nspc.h"
+#include "gwion_env.h"
#include "vm.h"
#include "traverse.h"
#include "parse.h"
#include "gwion.h"
#include "tuple.h"
-#include "context.h"
ANN static void free_type(Type a, Gwion gwion) {
if(GET_FLAG(a, template) || GET_FLAG(a, global)) {
-#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "gwion.h"
-#include "value.h"
-#include "type.h"
ANN static void free_value(Value a, Gwion gwion) {
const Type t = a->type;
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
-#include "func.h"
#include "instr.h"
#include "object.h"
#include "traverse.h"
#include "operator.h"
#include "import.h"
#include "parse.h"
-#include "nspc.h"
#include "match.h"
#include "tuple.h"
#include "emit.h"
#include "specialid.h"
-#include "context.h"
ANN static Type check_exp(const Env env, Exp exp);
ANN static m_bool check_stmt_list(const Env env, Stmt_List list);
-//#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "nspc.h"
-#include "value.h"
-#include "env.h"
-#include "type.h"
+#include "gwion_env.h"
#ifdef min
#undef min
-#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
-#include "nspc.h"
-#include "func.h"
-#include "value.h"
ANN static void free_func(Func a, Gwion gwion) {
if(GET_FLAG(a, template) && !GET_FLAG(a, builtin)/* && a->def->d.code*/)
return func;
}
-#include <string.h>
-#include "env.h"
-#include "type.h"
-#include "vm.h"
-#include "gwion.h"
-
ANN2(1,2) Symbol func_symbol(const Env env, const m_str nspc, const m_str base,
const m_str tmpl, const m_uint i) {
const size_t base_len = strlen(base);
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
-#include "type.h"
#include "instr.h"
#include "emit.h"
-#include "value.h"
-#include "func.h"
-#include "nspc.h"
#include "operator.h"
typedef Type (*f_type)(const Env env, const Exp exp);
#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
-#include "func.h"
-#include "nspc.h"
+#include "gwion_env.h"
#include "vm.h"
#include "traverse.h"
#include "template.h"
#include "operator.h"
#include "import.h"
-#include "context.h"
-
static inline void add_type(const Env env, const Nspc nspc, const Type t) {
nspc_add_type_front(nspc, insert_symbol(t->name), t);
}
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "type.h"
-#include "nspc.h"
-#include "value.h"
-#include "func.h"
+#include "gwion_env.h"
#include "vm.h"
#include "traverse.h"
#include "template.h"
#include "parse.h"
-#include "context.h"
ANN static m_bool scan1_stmt_list(const Env env, Stmt_List list);
ANN static m_bool scan1_stmt(const Env env, Stmt stmt);
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "value.h"
-#include "func.h"
#include "template.h"
#include "traverse.h"
#include "parse.h"
-#include "nspc.h"
#include "operator.h"
#include "object.h"
#include "instr.h"
#include "import.h"
#include "tuple.h"
-#include "context.h"
ANN static m_bool scan2_stmt(const Env, const Stmt);
ANN static m_bool scan2_stmt_list(const Env, Stmt_List);
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "type.h"
-#include "nspc.h"
+#include "gwion_env.h"
#include "vm.h"
#include "template.h"
#include "traverse.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "value.h"
-#include "type.h"
+#include "gwion_env.h"
ANN m_uint union_push(const Env env, const Union_Def udef) {
const Type type = udef->xid ? udef->value->type : udef->type_xid ?
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "func.h"
-#include "value.h"
-#include "nspc.h"
#include "traverse.h"
#include "template.h"
#include "vm.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "traverse.h"
ANN m_bool traverse_ast(const Env env, const Ast ast) {
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
-#include "nspc.h"
-#include "type.h"
+#include "gwion_env.h"
#include "vm.h"
#include "traverse.h"
#include "parse.h"
-#include "context.h"
-
#define STR_NONNULL ":nonnull"
#define STRLEN_NONNULL strlen(STR_NONNULL)
-#include "func.h"
-
ANN Type type_nonnull(const Env env, const Type base) {
char c[strlen(base->name) + 9];
sprintf(c, "%s%s", base->name, STR_NONNULL);
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "traverse.h"
#include "parse.h"
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "instr.h"
#include "emit.h"
#include "gwion.h"
-#include <string.h>
#ifndef BUILD_ON_WINDOWS
#include <glob.h>
#include <dlfcn.h>
#endif
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "instr.h"
#include "object.h"
-#include "type.h"
#include "import.h"
typedef m_bool (*import)(Gwi);
-#include <stdlib.h>
-#include <string.h>
-#include <string.h>
#include <time.h>
-#include <stdio.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
#include "gwion.h"
#include "driver.h"
#include <stdlib.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
#include "object.h"
#include "driver.h"
-#include <stdlib.h>
-#include <string.h>
#include <time.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "nspc.h"//dot func
-#include "func.h"//dot func
-#include "type.h"
#include "instr.h"
#include "object.h"
#include "ugen.h"
#include "shreduler_private.h"
#include "emit.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
#include "map_private.h"
-
-#include "value.h"
#include "gack.h"
#include "array.h"
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
+#include "gwion_env.h"
#include "vm.h"
-#include "env.h"
-#include "type.h"
-#include "func.h"
#include "instr.h"
#include "object.h"
#include "array.h"
#include "memoize.h"
#include "gwion.h"
-#include "value.h"
#include "operator.h"
#include "import.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include <stdlib.h>
-#include <string.h>
#include "gwion_util.h"
#include "gwion_ast.h"
-#include "oo.h"
-#include "env.h"
+#include "gwion_env.h"
#include "vm.h"
#include "object.h"
#include "gwion.h"