43 lines
593 B
C
43 lines
593 B
C
#ifndef INCLUDED_NUMBER_H
|
|
#define INCLUDED_NUMBER_H
|
|
|
|
#include "lisp/object.h"
|
|
#include "lisp/util.h"
|
|
|
|
LISP_BEGIN_DECLS
|
|
|
|
DECLARE_CLASS(Number);
|
|
DECLARE_CLASS(Float);
|
|
DECLARE_CLASS(Integer);
|
|
|
|
struct Number {
|
|
Object base;
|
|
};
|
|
struct NumberClass {
|
|
Class base;
|
|
|
|
Object *(*add)(Object *self, Object *other);
|
|
Object *(*sub)(Object *self, Object *other);
|
|
};
|
|
|
|
struct Float {
|
|
Number base;
|
|
|
|
double value;
|
|
};
|
|
struct FloatClass {
|
|
NumberClass base;
|
|
};
|
|
|
|
struct Integer {
|
|
Number base;
|
|
|
|
int64_t value;
|
|
};
|
|
struct IntegerClass {
|
|
NumberClass base;
|
|
};
|
|
|
|
LISP_END_DECLS
|
|
#endif
|