]> Nishi Git Mirror - gwion.git/commitdiff
:art: Clean headers
authorJérémie Astor <fennecdjay@gmail.com>
Thu, 13 May 2021 14:42:30 +0000 (16:42 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Thu, 13 May 2021 14:42:30 +0000 (16:42 +0200)
include/emit.h
include/env/context.h
include/env/env.h
include/env/func.h
include/env/nspc.h
include/gwion.h
include/operator.h
include/vm.h
tests/plug/callback.c

index cda0a13e86b1502ba6f7e2e1937dcd670d4bf153..f48db3abae86a57073949c9adcf6f280ae1d27a2 100644 (file)
@@ -2,17 +2,17 @@
 #define EMIT_H
 
 typedef struct Frame_ {
-  size_t curr_offset;
   struct Vector_ stack;
-  struct Vector_ defer;
+  size_t curr_offset;
   struct Map_    handlers;
+  struct Vector_ defer;
   m_uint try_top;
 } Frame;
 
 typedef struct Code_ {
   Frame* frame;
-  size_t stack_depth;
   struct Vector_ instr;
+  size_t stack_depth;
   struct Vector_  stack_cont;
   struct Vector_ stack_break;
   struct Vector_ stack_return;
index 2e15d7b8e1c0f3cbd6b812dd5a73868776042fbf..a302f04c948aa2c2dfb5d1c73488cb99aecefa3e 100644 (file)
@@ -2,12 +2,12 @@
 #define __CONTEXT
 typedef struct Context_   * Context;
 struct Context_ {
+  Nspc        nspc;
   m_str       name;
   Ast         tree;
-  Nspc        nspc;
+  uint16_t ref;
   bool error;
   bool global;
-  uint16_t ref;
 };
 
 REF_FUNC(Context, context)
index 60ac45236c3e4c88adf70b98ce438001bb5c36f2..85ff9565163479b629f2292b27319433a81332b9 100644 (file)
@@ -19,10 +19,10 @@ struct Env_Scope_ {
 typedef struct Env_ {
   m_str name;
   Nspc curr;
-  Nspc global_nspc;
-  struct Context_ *context;
   Type      class_def;
   Func      func;
+  struct Context_ *context;
+  Nspc global_nspc;
   struct Gwion_ *gwion;
   struct Env_Scope_* scope;
 } *Env;
index a89f3cda7b3fcaa974dd8242f098f8a6de85bed9..90e76c1a241edbfaec5ef2963e1654b29b7df290 100644 (file)
@@ -11,11 +11,11 @@ enum fflag {
 } __attribute__((packed));
 
 struct Func_ {
-  m_str name;
   Func_Def def;
   struct VM_Code_* code;
   Value value_ref;
   Func next;
+  m_str name;
   size_t vt_index;
   struct Map_ upvalues;
   uint16_t ref;
index 3ea6d7e0b6e18da78054388ccbcac4fd7aef2b6f..f8dda3c8712958c4dec52c92a079f8267cde3848 100644 (file)
@@ -12,11 +12,11 @@ struct NspcInfo_ {
 };
 
 struct Nspc_ {
-  m_str     name;
+  struct NspcInfo_* info;
   Nspc parent;
+  m_str     name;
   struct VM_Code_*   pre_ctor;
   struct VM_Code_*   dtor;
-  struct NspcInfo_* info;
   uint16_t ref;
 };
 
index 89834da5b727b65f9dab77537b832ddf8a5ef65c..220d040ec8f812ca7c3a61688c713fce51a804f6 100644 (file)
@@ -8,14 +8,14 @@
 struct Arg_;
 
 struct Gwion_ {
+  MemPool mp;
+  VM*      vm;
+  SymTable *st;
   Env      env;
   Emitter  emit;
-  VM*      vm;
   struct GwionData_ *data;
-  SymTable *st;
-  MemPool mp;
-  struct PPArg_ *ppa;
   Type *type;
+  struct PPArg_ *ppa;
 };
 
 ANN m_bool gwion_ini(const Gwion, struct Arg_*);
index 801688644859564eba27fd2b918612e7aa0eb535..b376f8288e3bbd1cf6f0eb55c6cbc538d8debcd2 100644 (file)
@@ -35,7 +35,7 @@ struct Op_Import {
 };
 
 struct Implicit {
-  Exp e;
+  Exp   e;
   Type  t;
   loc_t pos;
 };
index 917cb0a1bd9c6ff8b543b14a9ce621bd3d18952e..7a77b8a595e4b1b85f1c35fd301c8c6d283e1ef5 100644 (file)
@@ -35,11 +35,12 @@ typedef struct Shreduler_* Shreduler;
 typedef struct Emitter_   * Emitter;
 typedef struct VM_Shred_* VM_Shred;
 
-typedef struct Debugger_ {
-  struct Vector_ breakpoint;
-  Nspc nspc;
+typedef struct VMDebugger_ {
+  struct VM_ *vm;
+//  struct VM_Shred *shred;
+  struct Map_ map; // code, Vector<lines>
   bool step;
-} Debugger;
+} VMDebugger;
 
 typedef struct VM_ {
   Shreduler shreduler;
@@ -48,10 +49,16 @@ typedef struct VM_ {
   struct Gwion_* gwion;
   VM_Shred cleaner_shred;
   struct VM_ *parent;
-  Debugger debugger;
   uint32_t rand[2];
+  VMDebugger *dbg;
 } VM;
 
+typedef struct ShredDebugger_ {
+  struct Vector_ breakpoint;
+  struct Vector_ line;
+  struct Scope_ scope;
+} ShredDebugger;
+
 struct ShredInfo_ {
   VM* vm;
   struct M_Object_* me;
@@ -59,7 +66,7 @@ struct ShredInfo_ {
   MemPool mp;
   VM_Code orig;
   struct Vector_ frame;
-  struct Vector_ line;
+  ShredDebugger *dbg;
 };
 
 struct ShredTick_ {
index 5c5e19f481a191a1fefe97b3fe29c1a1e07032b3..e7f662df1bc2aea04165359c8db1515cce76b431 100644 (file)
@@ -21,7 +21,7 @@ struct ret_info {
 static INSTR(my_ret) {
   struct ret_info* info = (struct ret_info*)instr->m_val;
   POP_MEM(shred, info->offset);
-  vector_set(shred->code->instr, shred->pc, (vtype)info->instr);
+  vector_set(&shred->code->instr, shred->pc, (vtype)info->instr);
   shred->code = info->code;
 //*(VM_Code*)instr->ptr;
   POP_REG(shred, info->size)
@@ -53,12 +53,12 @@ static SFUN(cb_func) {
 //  *(VM_Code*)instr->ptr = shred->code;
   instr->m_val = (m_uint)info;
 //  instr->m_val2 = shred->pc;
-  for(i = 0; i < vector_size(f->code->instr); i++) {
-    Instr in = (Instr)vector_at(f->code->instr, i);
+  for(i = 0; i < vector_size(&f->code->instr); i++) {
+    Instr in = (Instr)vector_at(&f->code->instr, i);
     if(in->execute == FuncReturn ||
       in->execute == my_ret) {
       info->instr = in;
-      vector_set(f->code->instr, i, (vtype)instr);
+      vector_set(&f->code->instr, i, (vtype)instr);
     }
   }
   *(m_int*)RETURN = 1;