lambda-calc-1/builtin/compare/neq.c
2025-01-13 20:36:07 -06:00

73 lines
1.1 KiB
C

#include <assert.h>
#include <debug.h>
/*#include <number/add.h>*/
/*#include <number/free.h>*/
/*#include <value/number/struct.h>*/
/*#include <value/number/new.h>*/
#include <value/lazy/unlazy.h>
/*#include <value/free.h>*/
#include <value/builtin_lambda/struct.h>
#include "neq.h"
struct value* builtin_compare_neq(
struct booleans* booleans,
struct builtin_lambda_value* prev,
struct value* tail)
{
ENTER;
struct value* left = lazy_value_unlazy(prev->value, booleans);
struct value* right = lazy_value_unlazy(tail, booleans);
dpvp(left);
dpvp(right);
assert(left);
assert(right);
TODO;
#if 0
if (left->kind != vk_number || right->kind != vk_number)
{
TODO;
exit(1);
}
struct number* sum = number_add(
/* left: */ ((struct number_value*) left)->value,
/* right: */ ((struct number_value*) right)->value);
struct value* result = new_number_value(sum);
free_number(sum);
free_value(left);
free_value(right);
EXIT;
return result;
#endif
}