diff options
Diffstat (limited to 'js/scripting-lang/baba-yaga-c/include')
-rw-r--r-- | js/scripting-lang/baba-yaga-c/include/baba_yaga.h | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/js/scripting-lang/baba-yaga-c/include/baba_yaga.h b/js/scripting-lang/baba-yaga-c/include/baba_yaga.h index 0bd6037..76d2b5f 100644 --- a/js/scripting-lang/baba-yaga-c/include/baba_yaga.h +++ b/js/scripting-lang/baba-yaga-c/include/baba_yaga.h @@ -288,9 +288,11 @@ Value baba_yaga_table_get_by_key(const Value* table, const char* key); * @param body Function body (function pointer) * @return New function value */ -Value baba_yaga_value_function(const char* name, Value (*body)(Value*, int), +Value baba_yaga_value_function(const char* name, Value (*body)(Value*, int, Scope*), int param_count, int required_param_count); + + /** * @brief Call a function with arguments * @@ -567,6 +569,47 @@ void baba_yaga_error_destroy(BabaYagaError* error); /* Core combinator */ Value stdlib_apply(Value* args, int argc); +/* Wrapper functions for function signature compatibility */ +Value stdlib_apply_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_add_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_subtract_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_multiply_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_divide_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_modulo_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_pow_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_negate_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_equals_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_not_equals_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_less_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_less_equal_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_greater_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_greater_equal_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_and_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_or_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_xor_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_not_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_compose_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_out_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_in_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_assert_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_emit_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_listen_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_flip_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_constant_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_apply_wrapper(Value* args, int argc, Scope* scope); + +/* Table operation wrappers */ +Value stdlib_t_map_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_filter_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_reduce_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_set_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_delete_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_merge_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_length_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_has_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_t_get_wrapper(Value* args, int argc, Scope* scope); +Value stdlib_table_entry_wrapper(Value* args, int argc, Scope* scope); + /* Arithmetic functions */ Value stdlib_add(Value* args, int argc); Value stdlib_subtract(Value* args, int argc); @@ -601,10 +644,10 @@ Value stdlib_emit(Value* args, int argc); Value stdlib_listen(Value* args, int argc); /* Higher-order functions */ -Value stdlib_map(Value* args, int argc); -Value stdlib_filter(Value* args, int argc); -Value stdlib_reduce(Value* args, int argc); -Value stdlib_each(Value* args, int argc); +Value stdlib_map(Value* args, int argc, Scope* scope); +Value stdlib_filter(Value* args, int argc, Scope* scope); +Value stdlib_reduce(Value* args, int argc, Scope* scope); +Value stdlib_each(Value* args, int argc, Scope* scope); Value stdlib_flip(Value* args, int argc); Value stdlib_constant(Value* args, int argc); @@ -618,6 +661,7 @@ Value stdlib_t_merge(Value* args, int argc); Value stdlib_t_length(Value* args, int argc); Value stdlib_t_has(Value* args, int argc); Value stdlib_t_get(Value* args, int argc); +Value stdlib_table_entry(Value* args, int argc); /* ============================================================================ * Scope Management Functions |