summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/convert.c30
-rw-r--r--src/core/function.c94
-rw-r--r--src/core/interpret.c1
-rw-r--r--src/core/token.c3
4 files changed, 68 insertions, 60 deletions
diff --git a/src/core/convert.c b/src/core/convert.c
index d156007..ee9ab9b 100644
--- a/src/core/convert.c
+++ b/src/core/convert.c
@@ -147,36 +147,6 @@ convert_to_string(Token *p_token) {
void
convert_to_array(Token *p_token) {
ERROR("not yet implemented");
- switch (token_get_tt(p_token)) {
- case TT_INTEGER:
- {
- token_set_tt(p_token, TT_STRING);
- char c_tmp[1024];
- sprintf(c_tmp, "%d", token_get_ival(p_token));
- int i_len = strlen(c_tmp);
- p_token->c_val = realloc(p_token->c_val, sizeof(char) * (i_len + 1));
- strcpy(p_token->c_val, c_tmp);
- p_token->c_val[i_len] = 0;
- }
- break;
- case TT_DOUBLE:
- {
- token_set_tt(p_token, TT_STRING);
- char c_tmp[1024];
- sprintf(c_tmp, "%f", token_get_dval(p_token));
- int i_len = strlen(c_tmp);
- p_token->c_val = realloc(p_token->c_val, sizeof(char) * (i_len + 1));
- strcpy(p_token->c_val, c_tmp);
- p_token->c_val[i_len] = 0;
- }
- case TT_STRING:
- break;
- case TT_ARRAY:
- break;
- default:
- ERROR("Datatype conversion error");
- break;
- }
}
void
diff --git a/src/core/function.c b/src/core/function.c
index fbdf53d..8d5dbf6 100644
--- a/src/core/function.c
+++ b/src/core/function.c
@@ -186,14 +186,10 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
- /*
- case TT_ARRAY:
- token_set_ival(p_token_store,
- atoi(token_get_val(p_token_next)) +
- atoi(token_get_val(p_token_store)));
- token_set_tt(p_token_store, TT_INTEGER);
- break;
- */
+ case TT_ARRAY:
+ array_append(p_token_store->p_array,
+ p_token_next->p_array);
+ break;
NO_DEFAULT;
}
break;
@@ -215,6 +211,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("TT_ARRAY - TT_ARRAY not yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -236,6 +235,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("TT_ARRAY * TT_ARRAY not yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -257,6 +259,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atof(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_DOUBLE);
break;
+ case TT_ARRAY:
+ ERROR("TT_ARRAY / TT_ARRAY not yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -278,6 +283,8 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
strcmp(token_get_val(p_token_next),
token_get_val(p_token_store)) == 0);
token_set_tt(p_token_store, TT_INTEGER);
+ case TT_ARRAY:
+ ERROR("TT_ARRAY eq TT_ARRAY not yet implemented");
break;
NO_DEFAULT;
}
@@ -301,6 +308,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
token_get_val(p_token_store)) != 0);
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -323,6 +333,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
token_get_val(p_token_store)) <= 0);
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -345,6 +358,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
token_get_val(p_token_store)) >= 0);
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -367,6 +383,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
token_get_val(p_token_store)) < 0);
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -389,27 +408,8 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
token_get_val(p_token_store)) > 0);
token_set_tt(p_token_store, TT_INTEGER);
break;
- NO_DEFAULT;
- }
- break;
- case TT_AND:
- switch (tt_highest) {
- case TT_INTEGER:
- token_set_ival(p_token_store,
- (int) token_get_ival(p_token_next) &
- token_get_ival(p_token_store));
- break;
- case TT_DOUBLE:
- token_set_ival(p_token_store,
- (int) token_get_dval(p_token_next) &
- (int) token_get_dval(p_token_store));
- token_set_tt(p_token_store, TT_INTEGER);
- break;
- case TT_STRING:
- token_set_ival(p_token_store,
- atoi(token_get_val(p_token_next)) &
- atoi(token_get_val(p_token_store)));
- token_set_tt(p_token_store, TT_INTEGER);
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
break;
NO_DEFAULT;
}
@@ -433,6 +433,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -455,6 +458,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -477,6 +483,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -499,6 +508,9 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
atoi(token_get_val(p_token_store)));
token_set_tt(p_token_store, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
break;
@@ -617,6 +629,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
if (atoi(token_get_val(p_token)) == 0)
_FUNCTION_ERROR("Assert failed", p_token);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
@@ -636,6 +651,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
convert_to_integer(p_token);
token_set_ival(p_token, token_get_ival(p_token) - 1);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
@@ -684,6 +702,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
convert_to_integer(p_token);
token_set_ival(p_token, token_get_ival(p_token) + 1);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
@@ -716,6 +737,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
token_set_ival(p_token, -atoi(token_get_val(p_token)));
token_set_tt(p_token, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
@@ -739,6 +763,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
token_set_ival(p_token, !atoi(token_get_val(p_token)));
token_set_tt(p_token, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
}
@@ -759,6 +786,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
case TT_STRING:
printf("%s", token_get_val(p_token));
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
}
@@ -780,6 +810,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
break;
case TT_STRING:
printf("%s", token_get_val(p_token));
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
break;
}
}
@@ -827,6 +860,9 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
token_set_ival(p_token, !atoi(token_get_val(p_token)));
token_set_tt(p_token, TT_INTEGER);
break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
NO_DEFAULT;
}
diff --git a/src/core/interpret.c b/src/core/interpret.c
index 098111b..c6b66de 100644
--- a/src/core/interpret.c
+++ b/src/core/interpret.c
@@ -801,6 +801,7 @@ _term(Interpret *p_interpret) {
case TT_INTEGER:
case TT_DOUBLE:
case TT_STRING:
+ case TT_ARRAY:
stack_push(p_interpret->p_stack, p_interpret->p_token);
_NEXT
return (1);
diff --git a/src/core/token.c b/src/core/token.c
index 6a9d966..3a2e413 100644
--- a/src/core/token.c
+++ b/src/core/token.c
@@ -398,7 +398,8 @@ token_print_val(Token *p_token) {
printf("(%s, %s)", tt_get_name(tt), token_get_val(p_token));
break;
case TT_ARRAY:
- printf("(%s, size:%d)", tt_get_name(tt), array_get_size(p_token->p_array));
+ printf("(%s, size:%d)", tt_get_name(tt),
+ array_get_size(p_token->p_array));
break;
default:
ERROR("Ouups(%s)!", tt_get_name(tt));