summaryrefslogtreecommitdiff
path: root/src/core/function.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/function.c')
-rw-r--r--src/core/function.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/core/function.c b/src/core/function.c
index 8d5dbf6..a102d7b 100644
--- a/src/core/function.c
+++ b/src/core/function.c
@@ -283,6 +283,7 @@ _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);
+ break;
case TT_ARRAY:
ERROR("TT_ARRAY eq TT_ARRAY not yet implemented");
break;
@@ -414,6 +415,31 @@ _process(Interpret *p_interpret, Token *p_token_store, Token *p_token_op,
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);
+ break;
+ case TT_ARRAY:
+ ERROR("ARRAY bla yet implemented");
+ break;
+ NO_DEFAULT;
+ }
+ break;
case TT_OR:
switch (tt_highest) {
case TT_INTEGER:
@@ -810,10 +836,10 @@ function_process_buildin(Interpret *p_interpret, Token *p_token_ident,
break;
case TT_STRING:
printf("%s", token_get_val(p_token));
+ break;
case TT_ARRAY:
ERROR("ARRAY bla yet implemented");
break;
- break;
}
}
stackiterator_delete(p_iter);