Implemented acos, asin, atan, cos, ln, log, sin, sqrt, and tan
This commit is contained in:
parent
f4a7627d7e
commit
b2e2b91f2c
|
|
@ -656,6 +656,20 @@ Boolean load_builtins(InterpreterState *interpreter_state) {
|
||||||
return FALSE; \
|
return FALSE; \
|
||||||
} \
|
} \
|
||||||
|
|
||||||
|
#define FLOAT_FUNCTION(func) \
|
||||||
|
(void)ai; \
|
||||||
|
(void)type; \
|
||||||
|
\
|
||||||
|
StackItem *node = interpreter_state->stack; \
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next; \
|
||||||
|
node->next = NULL; \
|
||||||
|
clean_stack(node); \
|
||||||
|
\
|
||||||
|
return push_token(interpreter_state, (Token){ \
|
||||||
|
.type = TOKEN_DOUBLE, \
|
||||||
|
.double_literal = func(af), \
|
||||||
|
}); \
|
||||||
|
|
||||||
#define ARITHMETIC(op) \
|
#define ARITHMETIC(op) \
|
||||||
StackItem *node = interpreter_state->stack; \
|
StackItem *node = interpreter_state->stack; \
|
||||||
interpreter_state->stack = interpreter_state->stack->next->next; \
|
interpreter_state->stack = interpreter_state->stack->next->next; \
|
||||||
|
|
@ -988,18 +1002,18 @@ Boolean builtin_abs(InterpreterState *interpreter_state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_acos(InterpreterState *interpreter_state) {
|
Boolean builtin_acos(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(acos);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_asin(InterpreterState *interpreter_state) {
|
Boolean builtin_asin(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(asin);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_atan(InterpreterState *interpreter_state) {
|
Boolean builtin_atan(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(atan);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_atan2(InterpreterState *interpreter_state) {
|
Boolean builtin_atan2(InterpreterState *interpreter_state) {
|
||||||
|
|
@ -1033,8 +1047,8 @@ Boolean builtin_ceil(InterpreterState *interpreter_state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_cos(InterpreterState *interpreter_state) {
|
Boolean builtin_cos(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(cos);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_depth(InterpreterState *interpreter_state) {
|
Boolean builtin_depth(InterpreterState *interpreter_state) {
|
||||||
|
|
@ -1090,13 +1104,13 @@ Boolean builtin_lambda(InterpreterState *interpreter_state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_ln(InterpreterState *interpreter_state) {
|
Boolean builtin_ln(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_log(InterpreterState *interpreter_state) {
|
Boolean builtin_log(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(log10);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_logb(InterpreterState *interpreter_state) {
|
Boolean builtin_logb(InterpreterState *interpreter_state) {
|
||||||
|
|
@ -1170,13 +1184,13 @@ Boolean builtin_shr(InterpreterState *interpreter_state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_sin(InterpreterState *interpreter_state) {
|
Boolean builtin_sin(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(sin);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_sqrt(InterpreterState *interpreter_state) {
|
Boolean builtin_sqrt(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(sqrt);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_swap(InterpreterState *interpreter_state) {
|
Boolean builtin_swap(InterpreterState *interpreter_state) {
|
||||||
|
|
@ -1185,8 +1199,8 @@ Boolean builtin_swap(InterpreterState *interpreter_state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_tan(InterpreterState *interpreter_state) {
|
Boolean builtin_tan(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPE;
|
||||||
return FALSE;
|
FLOAT_FUNCTION(tan);
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_type_of(InterpreterState *interpreter_state) {
|
Boolean builtin_type_of(InterpreterState *interpreter_state) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue