refactor(log): 统一日志系统并添加链接器实现

- 为所有模块添加统一的 scc_*_log.h 日志头文件,删除旧的 lexer_log.h/c
- 将运行时日志从 scc_utils 迁移到 scc_core 目录,统一日志管理
- 在解析器表达式/语句/类型解析中添加 LOG_TRACE 调试日志
- 实现 SCCF 链接器 (sccf_linker) 支持多目标文件链接
- 重构 CLI 主程序 (main.c/config.c),新增 cmd_log.h 调试支持
- 优化 x86 指令编码操作数对齐检查
- 修复预处理器的指令处理和宏展开逻辑
This commit is contained in:
zzy
2026-06-05 13:07:41 +08:00
parent 0acea43e4e
commit 88846d7479
70 changed files with 1497 additions and 469 deletions

View File

@@ -13,6 +13,12 @@ typedef struct {
scc_hashtable_t str2offset;
sccf_sym_vec_t symtab;
sccf_reloc_vec_t relocs;
const char *entry_symbol_name;
} sccf_linker_t;
void sccf_linker_init(sccf_linker_t *linker);
void sccf_linker_add_sccf(sccf_linker_t *linker, const sccf_t *sccf);
void sccf_linker_set_entry_symbol_name(sccf_linker_t *linker, const char *name);
const sccf_t *sccf_linker_link(sccf_linker_t *linker);
#endif /* __SCC_FORMAT_LINKER_H__ */

View File

@@ -0,0 +1,26 @@
#ifndef __SCCF_LOG_H__
#define __SCCF_LOG_H__
typedef struct logger logger_t;
extern logger_t __scc_sccf_log;
extern logger_t __scc_sccf_user;
#define SCC_LOG_HANDLER &__scc_sccf_user
#define LOG_DEFAULT_HANDLER &__scc_sccf_log
#include <scc_log.h>
#ifdef __SCCF_LOG_IMPL__
logger_t __scc_sccf_log = {
.name = "sccf",
.level = LOG_LEVEL_ALL,
.handler = log_default_handler,
};
logger_t __scc_sccf_user = {
.name = "sccf",
.level = LOG_LEVEL_ALL,
.user_handler = scc_log_handler,
};
#endif
#endif