INSTR(DotTmpl);
INSTR(GTmpl);
-INSTR(TupleCtor);
-INSTR(TupleMember);
-
struct dottmpl_ {
size_t len;
m_str name;
--- /dev/null
+#ifndef __TUPLE
+#define __TUPLE
+typedef struct TupleForm_* TupleForm;
+struct TupleForm_ {
+ struct Vector_ types;
+ struct Vector_ offset;
+ Type_List list;
+};
+
+ANN Type tuple_type(const Env, const Vector, const loc_t);
+ANN void tuple_info(const Env, Type_Decl*, const Var_Decl);
+ANN TupleForm new_tupleform(MemPool p);
+ANN void free_tupleform(MemPool p, const TupleForm tuple);
+
+#ifdef __INSTR
+INSTR(TupleCtor);
+INSTR(TupleMember);
+#endif
+#endif
#ifndef __TYPE
#define __TYPE
-typedef struct TupleForm_* TupleForm;
-struct TupleForm_ {
- struct Vector_ types;
- struct Vector_ offset;
- Type_List list;
-};
-
struct TypeInfo_ {
Type parent;
Nspc owner;
return isa(actual_type(t), t_fptr) > 0;
}
ANN m_uint get_depth(const Type type);
-
-
-ANN Type tuple_type(const Env, const Vector, const loc_t);
-ANN void tuple_info(const Env, Type_Decl*, const Var_Decl);
-ANN TupleForm new_tupleform(MemPool p);
-ANN void free_tupleform(MemPool p, const TupleForm tuple);
#endif
#include "import.h"
#include "switch.h"
#include "parser.h"
+#include "tuple.h"
#undef insert_symbol
#define insert_symbol(a) insert_symbol(emit->gwion->st, (a))
#include "value.h"
#include "parse.h"
#include "cpy_ast.h"
+#include "tuple.h"
struct TupleEmit {
Exp e;
#include "traverse.h"
#include "parse.h"
#include "gwion.h"
+#include "tuple.h"
ANN static void free_type(Type a, Gwion gwion) {
if(GET_FLAG(a, template)) {
#include "nspc.h"
#include "switch.h"
#include "cpy_ast.h"
+#include "tuple.h"
ANN static Type check_exp(const Env env, Exp exp);
ANN static m_bool check_stmt_list(const Env env, Stmt_List list);