.
This commit is contained in:
4
TODO.md
4
TODO.md
@@ -5,8 +5,8 @@ Decisions:
|
|||||||
- How values and heap values will be represented
|
- How values and heap values will be represented
|
||||||
- Transparency and log levels
|
- Transparency and log levels
|
||||||
|
|
||||||
- [ ] Makefile
|
- [x] Makefile
|
||||||
- [ ] VALUE
|
- [x] VALUE
|
||||||
- [ ] Stack
|
- [ ] Stack
|
||||||
- [ ] Test application (C++?)
|
- [ ] Test application (C++?)
|
||||||
- [ ] Heap
|
- [ ] Heap
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ typedef struct {
|
|||||||
|
|
||||||
static_assert(sizeof(VALUE) <= 8, "VALUE must be < 8 bytes");
|
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)
|
static int32_t value_integer(VALUE v)
|
||||||
{
|
{
|
||||||
#ifdef CHECK_TYCHE_BUGS
|
#ifdef CHECK_TYCHE_BUGS
|
||||||
|
|||||||
16
test/tests.c
Normal file
16
test/tests.c
Normal 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);
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
extern "C" {
|
|
||||||
#include "../lib/vm.c"
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user