diff options
Diffstat (limited to '')
-rw-r--r-- | src/mds-kbdc/builtin-functions.c | 4 | ||||
-rw-r--r-- | src/mds-kbdc/compile-layout.c | 1 | ||||
-rw-r--r-- | test-files/mds-kbdc/compile-layout/valid/get | 8 | ||||
-rw-r--r-- | test-files/mds-kbdc/compile-layout/valid/set | 8 |
4 files changed, 18 insertions, 3 deletions
diff --git a/src/mds-kbdc/builtin-functions.c b/src/mds-kbdc/builtin-functions.c index 7cd13b7..3ad4e83 100644 --- a/src/mds-kbdc/builtin-functions.c +++ b/src/mds-kbdc/builtin-functions.c @@ -282,7 +282,7 @@ static char32_t* builtin_function_get_2(const char32_t** restrict args) const char32_t* restrict b = *args++; char32_t* restrict rc; size_t n = (size_t)*b; - mds_kbdc_tree_t* value = variables_get((size_t)*a); + mds_kbdc_tree_t* value = variables_get((size_t)*a)->array.elements; while (n--) value = value->next; fail_if (rc = string_dup(value->compiled_string.string), rc == NULL); @@ -303,7 +303,7 @@ static char32_t* builtin_function_set_3(const char32_t** restrict args) const char32_t* restrict c = *args++; char32_t* restrict rc; size_t n = (size_t)*b; - mds_kbdc_tree_t* value = variables_get((size_t)*a); + mds_kbdc_tree_t* value = variables_get((size_t)*a)->array.elements; while (n--) value = value->next; free(value->compiled_string.string); diff --git a/src/mds-kbdc/compile-layout.c b/src/mds-kbdc/compile-layout.c index e15e7e4..db2680d 100644 --- a/src/mds-kbdc/compile-layout.c +++ b/src/mds-kbdc/compile-layout.c @@ -18,7 +18,6 @@ #include "compile-layout.h" /* TODO add call stack */ /* TODO fix so that for-loops do not generate the same errors/warnings in all iterations [loopy_error]. */ -/* TODO test set/3 and get/2 */ #include "include-stack.h" #include "builtin-functions.h" diff --git a/test-files/mds-kbdc/compile-layout/valid/get b/test-files/mds-kbdc/compile-layout/valid/get new file mode 100644 index 0000000..89dfc37 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/valid/get @@ -0,0 +1,8 @@ +let \1 : { 1 2 3 0 5} +if \get(1 3) + "" : 0 +end if +if \not(\equals(\get(1 4) 5)) + 0 : "" +end if + diff --git a/test-files/mds-kbdc/compile-layout/valid/set b/test-files/mds-kbdc/compile-layout/valid/set new file mode 100644 index 0000000..13d9551 --- /dev/null +++ b/test-files/mds-kbdc/compile-layout/valid/set @@ -0,0 +1,8 @@ +let \1 : { 0 } +if \get(1 0) + "" : 0 +end if +\set(1 0 1) +if \not(\get(1 0)) + "" : 0 +end if
\ No newline at end of file |