test functions

This commit is contained in:
Arthur Barraux
2025-09-18 13:52:46 +02:00
parent 5818a8ecfc
commit ee2a34a3b1
21 changed files with 1252 additions and 1434 deletions
+21 -12
View File
@@ -3,22 +3,31 @@
#include "data.h"
int register_builtin_function(const char *name, int (*handler)(node_t **, int),
bool eval_args);
int register_user_function(const char *name, char **parameters, int param_count,
node_t *body);
int register_registry_function(const char *name, command_func_t func);
// Builtins
int register_function(const char *name, command_func_t func);
Value *builtin_add(Value *args);
Value *builtin_sub(Value *args);
Value *builtin_mul(Value *args);
Value *builtin_div(Value *args);
Value *builtin_eq(Value *args);
Value *builtin_list(Value *args);
Value *builtin_car(Value *args);
Value *builtin_cdr(Value *args);
unified_function_t *find_unified_function(const char *name);
// Evaluator
node_t *execute_unified_function(exec_context_t *ctx, const char *name,
node_t **args, int arg_count);
Value *eval_list(Value *list, Env *env);
Value *apply_function(Value *func, Value *args, Env *env);
Value *eval_expr(Value *expr, Env *env);
command_func_t find_function(const char *name);
int execute_command(const char *name);
// Key-mapping
node_t *execute_function_call_in_context(exec_context_t *ctx, node_t *call);
KeyBindingTable *extract_keybindings(Value *keymap);
char *normalize_key_sequence(const char *raw_input);
bool execute_keybinding(const char *key_sequence);
void set_active_keymap(const char *keymap_name);
void combine_keymaps(const char *global_keymap, const char *mode_keymap);
bool execute_editor_command(const char *command);
#endif