]> Nishi Git Mirror - gwion.git/commitdiff
:shirt: Introcude loc_t
authorfennecdjay <astor.jeremie@wanadoo.fr>
Fri, 12 Apr 2019 12:31:05 +0000 (14:31 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Fri, 12 Apr 2019 12:31:05 +0000 (14:31 +0200)
ast
src/emit/emit.c
src/emit/escape.c
src/gwion.c
src/oo/env_utils.c
src/oo/switch.c
src/parse/check.c
src/parse/scan0.c
src/parse/scan1.c
src/parse/type_utils.c
util

diff --git a/ast b/ast
index c32bbfb803ba875ce098b18f5f4e09f97040a5f2..83effb10458c2461f366b689c315013bbe491f76 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit c32bbfb803ba875ce098b18f5f4e09f97040a5f2
+Subproject commit 83effb10458c2461f366b689c315013bbe491f76
index 180d02275dc7cf626c98ec9992957d1415159bb4..a2a48242e7e4b9817ff2c7192cdfef5c518069e1 100644 (file)
@@ -271,7 +271,7 @@ static const f_instr dotmember[]  = { DotMember, DotMember2, DotMember3, DotMemb
 static const f_instr allocmember[]  = { RegPushImm, RegPushImm2, RegPushImm3, AllocMember4 };
 static const f_instr allocword[]  = { AllocWord, AllocWord2, AllocWord3, AllocWord4 };
 
-ANN static inline Exp this_exp(const Emitter emit, const Type t, const uint pos) {
+ANN static inline Exp this_exp(const Emitter emit, const Type t, const loc_t pos) {
   const Exp exp = new_exp_prim_id(emit->gwion->p, insert_symbol("this"), pos);
   exp->type = t;
   return exp;
index 0dd9231f850fbd8588daf98d4858badacffed107..98f8de4ea095a276d829c80cfa6cb5ac3fb682d4 100644 (file)
@@ -23,11 +23,11 @@ char* escape_table(void) {
   return escape;
 }
 
-static int get_escape(const Emitter emit, const char c, const uint pos) {
+static int get_escape(const Emitter emit, const char c, const loc_t pos) {
   return emit->escape[(int)c] ?: err_msg(pos, "unrecognized escape sequence '\\%c'", c);
 }
 
-m_bool escape_str(const Emitter emit, const m_str base, const uint pos) {
+m_bool escape_str(const Emitter emit, const m_str base, const loc_t pos) {
   unsigned char* str_lit = (unsigned char*)base;
   m_str str = base;
   while(*str_lit) {
@@ -68,7 +68,7 @@ m_bool escape_str(const Emitter emit, const m_str base, const uint pos) {
   return GW_OK;
 }
 
-ANN m_int str2char(const Emitter emit, const m_str c, const uint pos) {
+ANN m_int str2char(const Emitter emit, const m_str c, const loc_t pos) {
   return c[0] != '\\' ? c[0] : get_escape(emit, c[1], pos);
 }
 
index 6086af3e4cb7f1bd0d33e922f594dbe5bd4680f3..2300232c7836a4324dffb978a63ef30cbbbd432b 100644 (file)
@@ -100,7 +100,7 @@ ANN void gwion_end(const Gwion gwion) {
   mempool_end(gwion->p);
 }
 
-ANN void env_err(const Env env, const uint pos, const m_str fmt, ...) {
+ANN void env_err(const Env env, const loc_t pos, const m_str fmt, ...) {
   gw_err("in file: '%s'\n", env->name);
   if(env->class_def)
     gw_err("in class: '%s'\n", env->class_def->name);
index 5f2be4df055a0580448dd38c64d1a898782851a8..6e86a9516b219f1d416e41ddaf6e3c41be5e5650 100644 (file)
@@ -20,7 +20,7 @@ ANN Nspc env_nspc(const Env env) {
 }
 
 #define GET(a,b) ((a) & (b)) == (b)
-ANN m_bool env_access(const Env env, const ae_flag flag, const uint pos) {
+ANN m_bool env_access(const Env env, const ae_flag flag, const loc_t pos) {
   if(env->scope->depth) {
    if(GET(flag, ae_flag_global))
       ERR_B(pos, "'global' can only be used at %s scope.",
@@ -33,7 +33,7 @@ ANN m_bool env_access(const Env env, const ae_flag flag, const uint pos) {
   return GW_OK;
 }
 
-ANN m_bool env_storage(const Env env, ae_flag flag, const uint pos) {
+ANN m_bool env_storage(const Env env, ae_flag flag, const loc_t pos) {
   CHECK_BB(env_access(env, flag, pos))
   return !(env->class_def && GET(flag, ae_flag_global)) ? GW_OK :GW_ERROR;
 }
@@ -73,7 +73,7 @@ ANN Type find_type(const Env env, ID_List path) {
   return type;
 }
 
-ANN m_bool already_defined(const Env env, const Symbol s, const uint pos) {
+ANN m_bool already_defined(const Env env, const Symbol s, const loc_t pos) {
   const Value v = nspc_lookup_value0(env->curr, s);
   return v ? err_msg(pos,
     "'%s' already declared as variable of type '%s'.", s_name(s), v->type->name) : GW_OK;
index e1859a5486bb45ba1fead714914b736a64e633eb..ed5bb366b869bbce686f6a26a87b046508aa6339 100644 (file)
@@ -103,12 +103,12 @@ ANN Exp switch_expget(const Env env) {
   return (Exp)vector_at(&sw->exp, sw->iter++);
 }
 
-ANN m_bool switch_inside(const Env env, const uint pos) {
+ANN m_bool switch_inside(const Env env, const loc_t pos) {
   if(!VLEN(&env->scope->swi))
     ERR_B(pos, "case found outside switch statement.")
   return GW_OK;
 }
-ANN m_bool switch_dup(const Env env, const m_int value, const uint pos) {
+ANN m_bool switch_dup(const Env env, const m_int value, const loc_t pos) {
   const Switch sw = (Switch)_scope_back(&env->scope->swi);
   if(map_get(sw->cases, (vtype)value))
     ERR_B(pos, "duplicated cases value %i", value)
@@ -130,7 +130,7 @@ ANN m_bool switch_dyn(const Env env) {
   return vector_size(&sw->exp);
 }
 
-ANN m_bool switch_default(const Env env, const m_uint pc, const uint pos) {
+ANN m_bool switch_default(const Env env, const m_uint pc, const loc_t pos) {
   const Switch sw = (Switch)_scope_back(&env->scope->swi);
   if(sw->default_case_index)
     ERR_B(pos, "default case already defined")
index 3aa5b6b019ee1fe7c0bd2c0e9048f75d75f4a7f1..95d39887e122050a565b502d9df61aebb4af7fc4 100644 (file)
@@ -490,7 +490,7 @@ ANN static void print_arg(Arg_List e) {
   while((e = e->next) && gw_err(","));
 }
 
-ANN2(1) static void* function_alternative(const Env env, const Type f, const Exp args, const uint pos){
+ANN2(1) static void* function_alternative(const Env env, const Type f, const Exp args, const loc_t pos){
   env_err(env, pos, "argument type(s) do not match for function. should be :");
   Func up = f->d.func;
   do {
index f79f05c0c6cd016342336aecd3ef3044cc9ab8f7..d91216bc36914ce96e006f16383696691fca08d1 100644 (file)
@@ -22,7 +22,7 @@ ANN static Value mk_class(const Env env, const Type base) {
   return v;
 }
 
-ANN static inline m_bool scan0_defined(const Env env, const Symbol s, const uint pos) {
+ANN static inline m_bool scan0_defined(const Env env, const Symbol s, const loc_t pos) {
   if(nspc_lookup_type1(env->curr, s))
     ERR_B(pos, "type '%s' already defined", s_name(s));
   return already_defined(env, s, pos);
index 3cf598b53e84c8cc6eabe817d3e64638418b87e2..1e0b36a54a83a8bd0a04c09fd35310c37bca0a57 100644 (file)
@@ -17,7 +17,7 @@ ANN static m_bool scan1_stmt_list(const Env env, Stmt_List list);
 ANN m_bool scan1_class_def(const Env env, const Class_Def class_def);
 ANN static m_bool scan1_stmt(const Env env, Stmt stmt);
 
-ANN static Type void_type(const Env env, const Type_Decl* td, const uint pos) {
+ANN static Type void_type(const Env env, const Type_Decl* td, const loc_t pos) {
   const Type t = known_type(env, td);
   CHECK_OO(t)
   if(t->size)
@@ -305,7 +305,7 @@ ANN m_bool scan1_func_def(const Env env, const Func_Def f) { GWDEBUG_EXE
 DECL_SECTION_FUNC(scan1)
 
 ANN static m_bool scan1_class_parent(const Env env, const Class_Def class_def) {
-  const uint pos = td_pos(class_def->base.ext);
+  const loc_t pos = td_pos(class_def->base.ext);
   if(class_def->base.ext->array)
     CHECK_BB(scan1_exp(env, class_def->base.ext->array->exp))
   const Type parent = class_def->base.type->parent = known_type(env, class_def->base.ext);
index 10f1fa56e0f3f02b1ea4fc4687b8c64633f2fe00..b6717d684693953ddcde0d0677b2a417f0c59f1f 100644 (file)
@@ -9,7 +9,7 @@
 #include "vm.h"
 #include "parse.h"
 
-ANN m_bool isres(const Env env, const Symbol xid, const uint pos) {
+ANN m_bool isres(const Env env, const Symbol xid, const loc_t pos) {
   const m_str s = s_name(xid);
   if(!strcmp(s, "this") || !strcmp(s, "vararg") || !name2op(s))
     ERR_B(pos, "%s is reserved.", s_name(xid));
diff --git a/util b/util
index ed43d9d14df891ffd3b9ae09ac63ad2c9de4d24e..c09b4ef1af52812816a0cb2fde12e0d81ccc3b06 160000 (submodule)
--- a/util
+++ b/util
@@ -1 +1 @@
-Subproject commit ed43d9d14df891ffd3b9ae09ac63ad2c9de4d24e
+Subproject commit c09b4ef1af52812816a0cb2fde12e0d81ccc3b06