diff options
| author | Paul Buetow <paul@buetow.org> | 2008-11-04 23:24:42 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-11-04 23:24:42 +0000 |
| commit | d2713783c48ca9fbdd6f4ea3aab03fe856fdd52a (patch) | |
| tree | 3d78a409ab9949319285d26403dd6b9d8bf2067f /src/core | |
| parent | f0b2170a9c769425082604c9e9252ba422902f3e (diff) | |
big step forward for arrays in fype.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/convert.c | 30 | ||||
| -rw-r--r-- | src/core/function.c | 94 | ||||
| -rw-r--r-- | src/core/interpret.c | 1 | ||||
| -rw-r--r-- | src/core/token.c | 3 |
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)); |
