]> Nishi Git Mirror - gwion.git/commitdiff
:art: gwion_err => env_err
authorfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 9 Apr 2019 22:10:55 +0000 (00:10 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 9 Apr 2019 22:10:55 +0000 (00:10 +0200)
ast
include/env.h
include/gwion.h
include/parse.h
src/emit/emit.c
src/gwion.c
src/lib/engine.c
src/lib/import.c
src/main.c
src/parse/check.c

diff --git a/ast b/ast
index 86c07142d6942990d228ed1cd4d584e898cfe90f..b032c9500ff15c8b20a01f3abcb3e1751d4b465f 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit 86c07142d6942990d228ed1cd4d584e898cfe90f
+Subproject commit b032c9500ff15c8b20a01f3abcb3e1751d4b465f
index cc5d09325033269160407271d05adda28823ecd4..11ce53bc1793227507fcbf52f6d5870094a9fe86 100644 (file)
@@ -59,4 +59,5 @@ ANN m_bool type_engine_check_prog(const Env, const Ast);
 ANN Func get_func(const Env, const Func_Def);
 ANN m_bool traverse_func_template(const Env env, const Func_Def def, const Type_List types);
 ANN ID_List str2list(const Env, const m_str path, m_uint* array_depth);
+ANN void env_err(const Env, const uint pos, const m_str fmt, ...);
 #endif
index a557c92a25c383859ecdcb1eb21396dfcd426371..97766423408fb906d812e45bee7d4a1b4b54affe 100644 (file)
@@ -19,5 +19,4 @@ ANN m_bool gwion_ini(const Gwion, struct Arg_*);
 ANN VM* gwion_cpy(const VM*);
 ANN void gwion_run(const Gwion gwion);
 ANN void gwion_end(const Gwion gwion);
-ANN void gwion_err(const Gwion gwion, const uint pos, const m_str fmt, ...);
 #endif
index fb68ae88019e0852d31dac4821dc5f394c28b5fd..02ac871d69b1764308af87c2b34c8a872adafd4e 100644 (file)
@@ -5,9 +5,9 @@
 #define insert_symbol(a) insert_symbol(env->gwion->st, (a))
 
 #undef ERR_B
-#define ERR_B(a, b, ...) { gwion_err(env->gwion, (a), (b), ## __VA_ARGS__); return GW_ERROR; }
+#define ERR_B(a, b, ...) { env_err(env, (a), (b), ## __VA_ARGS__); return GW_ERROR; }
 #undef ERR_O
-#define ERR_O(a, b, ...) { gwion_err(env->gwion, (a), (b), ## __VA_ARGS__); return NULL; }
+#define ERR_O(a, b, ...) { env_err(env, (a), (b), ## __VA_ARGS__); return NULL; }
 
 #define RET_NSPC(exp)       \
 ++env->scope->depth;        \
index 9acef143aff3a2bbcb46fc85516615f6d03d5dd7..81fdbf9c89c31206fdd5da82513a081cb63bdefe 100644 (file)
@@ -27,9 +27,9 @@
 #define insert_symbol(a) insert_symbol(emit->env->gwion->st, (a))
 
 #undef ERR_B
-#define ERR_B(a, b, ...) { gwion_err(emit->gwion, (a), (b), ## __VA_ARGS__); return GW_ERROR; }
+#define ERR_B(a, b, ...) { env_err(emit->env, (a), (b), ## __VA_ARGS__); return GW_ERROR; }
 #undef ERR_O
-#define ERR_O(a, b, ...) { gwion_err(emit->gwion, (a), (b), ## __VA_ARGS__); return NULL; }
+#define ERR_O(a, b, ...) { env_err(emit->env, (a), (b), ## __VA_ARGS__); return NULL; }
 
 typedef struct Local_ {
   m_uint size;
index 45f1503fcaa92aedfa776e5c534a9e3d3d5360a3..f1888826f38d099808751534de372481ae921a87 100644 (file)
@@ -100,8 +100,7 @@ ANN void gwion_end(const Gwion gwion) {
   mempool_end(gwion->p);
 }
 
-ANN void gwion_err(const Gwion gwion, const uint pos, const m_str fmt, ...) {
-  const Env env = gwion->env;
+ANN void env_err(const Env env, const uint 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 c3f05af7e3068ec51272f3e6c4dbdb185342382d..6773a7085ca3b00fe698d1913ce665014a1ef277 100644 (file)
@@ -105,4 +105,4 @@ ANN m_bool type_engine_init(VM* vm, const Vector plug_dirs) {
       env_reset(gwi.gwion->env);
   }
   return GW_OK;
-}
+}
\ No newline at end of file
index a40bb9bd406dbad9200cde7dd41aaa94c1bb212d..536b25d46b7593103c38c5395fa42e13daf3bf77 100644 (file)
@@ -97,20 +97,20 @@ ANN static m_bool name_valid(Env env, const m_str a) {
     }
     if(c == ',') {
       if(!lvl) {
-        gwion_err(env->gwion, 0, "illegal use of ',' outside of templating in name '%s'.", a);
+        env_err(env, 0, "illegal use of ',' outside of templating in name '%s'.", a);
         return GW_ERROR;
       }
       continue;
     }
     if(c == '>') {
       if(!lvl) {
-        gwion_err(env->gwion, 0, "illegal templating in name '%s'.", a);
+        env_err(env, 0, "illegal templating in name '%s'.", a);
         return GW_ERROR;
       }
       lvl--;
       continue;
     }
-    gwion_err(env->gwion, 0, "illegal character '%c' in name '%s'.", c, a);
+    env_err(env, 0, "illegal character '%c' in name '%s'.", c, a);
     return GW_ERROR;
   }
   return !lvl ? 1 : -1;
@@ -130,7 +130,7 @@ ANN static m_bool path_valid(const Env env,ID_List* list, const struct Path* p)
   for(m_uint i = p->len + 1; --i;) {
     const char c = p->path[i - 1];
     if(c != '.' && check_illegal(p->curr, c, i) < 0) {
-      gwion_err(env->gwion, 0, "illegal character '%c' in path '%s'.", c, p->path);
+      env_err(env, 0, "illegal character '%c' in path '%s'.", c, p->path);
       return GW_ERROR;
     }
     if(c == '.' || i == 1) {
@@ -140,7 +140,7 @@ ANN static m_bool path_valid(const Env env,ID_List* list, const struct Path* p)
         *list = prepend_id_list(env->gwion->st->p, insert_symbol(env->gwion->st, p->curr), *list, 0);
         memset(p->curr, 0, p->len + 1);
       } else {
-        gwion_err(env->gwion, 0, "path '%s' must not ini or end with '.'.", p->path);
+        env_err(env, 0, "path '%s' must not ini or end with '.'.", p->path);
         return GW_ERROR;
       }
     }
index d136974bd862b393e62ef307c283223fb227c49a..7201af6fd66791e804a9b75424cc600e2fdf3bc7 100644 (file)
@@ -7,6 +7,11 @@
 #include "gwion.h"
 #include "arg.h"
 
+#ifdef __linux__
+#include<libintl.h>
+#include<locale.h>
+#endif
+
 static jmp_buf jmp;
 static struct Gwion_ gwion;
 
@@ -16,6 +21,8 @@ static void sig(int unused NUSED) {
 }
 
 int main(int argc, char** argv) {
+//  setlocale(LC_ALL,"");
+//  bindtextdomain ("bison-runtime", "/usr/share/locale");
   Arg arg = { .argc=argc, .argv=argv, .loop=-1 };
   signal(SIGINT, sig);
   signal(SIGTERM, sig);
index fd5694581c02a721a6e651e4fcceeae9717b0d64..f367286c8b7bdd65b5b64fe47ea587a9396fc1d1 100644 (file)
@@ -180,7 +180,7 @@ ANN static Value check_non_res_value(const Env env, const Exp_Primary* primary)
 ANN static Type prim_id_non_res(const Env env, const Exp_Primary* primary) {
   const Value v = check_non_res_value(env, primary);
   if(!v || !GET_FLAG(v, checked)) {
-    gwion_err(env->gwion, exp_self(primary)->pos,
+    env_err(env, exp_self(primary)->pos,
           "variable %s not legit at this point.", s_name(primary->d.var));
     did_you_mean(env->gwion->st, s_name(primary->d.var));
     return NULL;
@@ -487,7 +487,7 @@ ANN static void print_arg(Arg_List e) {
 }
 
 ANN2(1) static void* function_alternative(const Env env, const Type f, const Exp args, const uint pos){
-  gwion_err(env->gwion, pos, "argument type(s) do not match for function. should be :");
+  env_err(env, pos, "argument type(s) do not match for function. should be :");
   Func up = f->d.func;
   do {
     gw_err("(%s)\t", up->name);