summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-11-04 23:43:30 +0000
committerPaul Buetow <paul@buetow.org>2008-11-04 23:43:30 +0000
commit7575536c805e379b009630947e72f636c006751f (patch)
treef8183dac7c3a088a5e6ac1054f226b8510337114 /src/core
parentd2713783c48ca9fbdd6f4ea3aab03fe856fdd52a (diff)
fixed bugs which happened.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/function.c28
-rw-r--r--src/core/token.c2
2 files changed, 29 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);
diff --git a/src/core/token.c b/src/core/token.c
index 3a2e413..a60a790 100644
--- a/src/core/token.c
+++ b/src/core/token.c
@@ -275,6 +275,7 @@ token_new_dummy() {
p_token->c_filename = NULL;
p_token->u_token_id = TOKEN_ID_COUNTER++;
p_token->i_ref_count = 0;
+ p_token->p_array = NULL;
/* Register the token in the garbage collector */
garbage_add_token(p_token);
@@ -290,6 +291,7 @@ token_new_copy(Token *p_token) {
if (p_token_copy == NULL)
ERROR("Memory alloc error");
+ p_token->p_array = NULL;
token_copy_vals(p_token_copy, p_token);
p_token_copy->i_ref_count = 0;