implemented comparisons
This commit is contained in:
parent
f91c63b37f
commit
b930e2c23b
|
|
@ -886,33 +886,105 @@ Boolean builtin_exponential(InterpreterState *interpreter_state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_greater_than(InterpreterState *interpreter_state) {
|
Boolean builtin_greater_than(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPES;
|
||||||
return FALSE;
|
(void)ai;
|
||||||
|
(void)bi;
|
||||||
|
(void)type;
|
||||||
|
|
||||||
|
StackItem *node = interpreter_state->stack;
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next->next;
|
||||||
|
node->next->next = NULL;
|
||||||
|
clean_stack(node);
|
||||||
|
|
||||||
|
return push_token(interpreter_state, (Token){
|
||||||
|
.type = TOKEN_BOOLEAN,
|
||||||
|
.boolean_literal = bf > af,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_greater_than_or_equal_to(InterpreterState *interpreter_state) {
|
Boolean builtin_greater_than_or_equal_to(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPES;
|
||||||
return FALSE;
|
(void)ai;
|
||||||
|
(void)bi;
|
||||||
|
(void)type;
|
||||||
|
|
||||||
|
StackItem *node = interpreter_state->stack;
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next->next;
|
||||||
|
node->next->next = NULL;
|
||||||
|
clean_stack(node);
|
||||||
|
|
||||||
|
return push_token(interpreter_state, (Token){
|
||||||
|
.type = TOKEN_BOOLEAN,
|
||||||
|
.boolean_literal = bf >= af,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_less_than(InterpreterState *interpreter_state) {
|
Boolean builtin_less_than(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPES;
|
||||||
return FALSE;
|
(void)ai;
|
||||||
|
(void)bi;
|
||||||
|
(void)type;
|
||||||
|
|
||||||
|
StackItem *node = interpreter_state->stack;
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next->next;
|
||||||
|
node->next->next = NULL;
|
||||||
|
clean_stack(node);
|
||||||
|
|
||||||
|
return push_token(interpreter_state, (Token){
|
||||||
|
.type = TOKEN_BOOLEAN,
|
||||||
|
.boolean_literal = bf < af,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_less_than_or_equal_to(InterpreterState *interpreter_state) {
|
Boolean builtin_less_than_or_equal_to(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPES;
|
||||||
return FALSE;
|
(void)ai;
|
||||||
|
(void)bi;
|
||||||
|
(void)type;
|
||||||
|
|
||||||
|
StackItem *node = interpreter_state->stack;
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next->next;
|
||||||
|
node->next->next = NULL;
|
||||||
|
clean_stack(node);
|
||||||
|
|
||||||
|
return push_token(interpreter_state, (Token){
|
||||||
|
.type = TOKEN_BOOLEAN,
|
||||||
|
.boolean_literal = bf <= af,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_equal_to(InterpreterState *interpreter_state) {
|
Boolean builtin_equal_to(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPES;
|
||||||
return FALSE;
|
(void)ai;
|
||||||
|
(void)bi;
|
||||||
|
(void)type;
|
||||||
|
|
||||||
|
StackItem *node = interpreter_state->stack;
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next->next;
|
||||||
|
node->next->next = NULL;
|
||||||
|
clean_stack(node);
|
||||||
|
|
||||||
|
return push_token(interpreter_state, (Token){
|
||||||
|
.type = TOKEN_BOOLEAN,
|
||||||
|
.boolean_literal = bf == af,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_not_equal_to(InterpreterState *interpreter_state) {
|
Boolean builtin_not_equal_to(InterpreterState *interpreter_state) {
|
||||||
(void)interpreter_state;
|
NUMERIC_TYPES;
|
||||||
return FALSE;
|
(void)ai;
|
||||||
|
(void)bi;
|
||||||
|
(void)type;
|
||||||
|
|
||||||
|
StackItem *node = interpreter_state->stack;
|
||||||
|
interpreter_state->stack = interpreter_state->stack->next->next;
|
||||||
|
node->next->next = NULL;
|
||||||
|
clean_stack(node);
|
||||||
|
|
||||||
|
return push_token(interpreter_state, (Token){
|
||||||
|
.type = TOKEN_BOOLEAN,
|
||||||
|
.boolean_literal = bf != af,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean builtin_abs(InterpreterState *interpreter_state) {
|
Boolean builtin_abs(InterpreterState *interpreter_state) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue