moka/lib/builtins.h

42 lines
1.2 KiB
C

#ifndef MK_BUILTINS_H
#define MK_BUILTINS_H
#include "commons.h"
#include "moka.h"
#define MK_EVAL(X) moka_eval_lazy(moka, X)
void register_builtins(struct moka* moka);
MOKA mk_println(struct moka* moka, struct vec* args);
MOKA mk_define(struct moka* moka, struct vec* args);
MOKA mk_array(struct moka* moka, struct vec* args);
MOKA mk_assert_eqv_mut(struct moka* moka, struct vec* args);
MOKA mk_do(struct moka* moka, struct vec* args);
MOKA mk_set_mut(struct moka* moka, struct vec* args);
// Flow Control
// ============
MOKA mk_if(struct moka* moka, struct vec* args);
// Comparisons
// ===========
MOKA mk_lt(struct moka* moka, struct vec* args);
MOKA mk_le(struct moka* moka, struct vec* args);
MOKA mk_gt(struct moka* moka, struct vec* args);
MOKA mk_ge(struct moka* moka, struct vec* args);
MOKA mk_is_eqv(struct moka* moka, struct vec* args);
MOKA mk_is_nev(struct moka* moka, struct vec* args);
// Num Arithmetic
// ==============
MOKA mk_add(struct moka* moka, struct vec* args);
MOKA mk_sub(struct moka* moka, struct vec* args);
MOKA mk_mul(struct moka* moka, struct vec* args);
MOKA mk_div(struct moka* moka, struct vec* args);
MOKA mk_mod(struct moka* moka, struct vec* args);
MOKA mk_pow(struct moka* moka, struct vec* args);
#endif