This commit is contained in:
2026-05-10 15:55:25 -05:00
parent 65aedb5a49
commit 3a40eda575
4 changed files with 23 additions and 9 deletions

View File

@@ -5,8 +5,8 @@ Decisions:
- How values and heap values will be represented
- Transparency and log levels
- [ ] Makefile
- [ ] VALUE
- [x] Makefile
- [x] VALUE
- [ ] Stack
- [ ] Test application (C++?)
- [ ] Heap

View File

@@ -15,6 +15,11 @@ typedef struct {
static_assert(sizeof(VALUE) <= 8, "VALUE must be < 8 bytes");
static TYC_TYPE value_type(VALUE v)
{
return v.type;
}
static int32_t value_integer(VALUE v)
{
#ifdef CHECK_TYCHE_BUGS

16
test/tests.c Normal file
View File

@@ -0,0 +1,16 @@
#include "../lib/vm.c"
#include <assert.h>
#include <math.h>
#include <string.h>
#define EQ(a, b) (memcmp(a, b) == 0)
int main()
{
// values
assert(value_type(create_value_integer(42)) == TT_INTEGER);
assert(value_integer(create_value_integer(-42)) == -42);
assert(fabsf(value_real(create_value_real(42.4f)) - 42.4f) < 0.00001f);
assert(value_idx(create_value_idx(TT_FUNCTION, 42)) == 42);
}

View File

@@ -1,7 +0,0 @@
extern "C" {
#include "../lib/vm.c"
}
int main()
{
}