/* spl_builtin.c — 内置函数集中注册表实现 */ #include "spl_builtin.h" #include "../stage0/include/utils.h" #include static const spl_builtin_t k_builtins[] = { {"sizeof", SPL_BUILTIN_SIZE_OF, 1, 1, 0}, {"bitsizeof", SPL_BUILTIN_BITSIZE_OF, 1, 1, 0}, {"alignof", SPL_BUILTIN_ALIGN_OF, 1, 1, 0}, {"offsetof", SPL_BUILTIN_OFFSET_OF, 2, 2, 0}, {"field_count", SPL_BUILTIN_FIELD_COUNT, 1, 1, 0}, {"dbg", SPL_BUILTIN_DBG, 0, -1, 1}, {"assert", SPL_BUILTIN_ASSERT, 1, 1, 1}, {"import", SPL_BUILTIN_IMPORT, 1, 1, 1}, }; const spl_builtin_t *spl_builtin_lookup(const char *name) { if (!name) return NULL; for (usize i = 0; i < sizeof(k_builtins) / sizeof(k_builtins[0]); i++) { if (strcmp(k_builtins[i].name, name) == 0) return &k_builtins[i]; } return NULL; } int spl_builtin_count(void) { return (int)(sizeof(k_builtins) / sizeof(k_builtins[0])); }